C 输入一串数字,去掉当中含7的和能被7整除的数,每一个数小于10000,数字个数小于100
输入样例:1,7,56,77,87,2,45,42,97,9977
输出:1,2,45
注意:输入个数不确定。所以不可以用整形数组处理。不能以推断整形数组元素是否等于\n为结束,由于数组是整形的。\n是字符型的,是输入不进去的
所以要用字符串来处理,先把用逗号相隔的全部整数取出来,然后再对这些数进行推断输出
#include<stdio.h>
#include<string.h>
void main()
{
char a[1000000];
int b[100],c[100];
int i,j,k,len,t,flag=0,len1=0;
k=0;len=0;t=0;
gets(a);
len1=strlen(a);
for(i=0,j=0;i<=len1;i++)
if(a[i]>=‘0‘&&a[i]<=‘9‘)
{
t=10*t+a[i]-‘0‘;
flag=1;
}
else if(flag==0)
continue;
else
{
b[j]=t;
j++;
len++;
t=0;
flag=0;
}
for(j=0,i=0;i<len;i++)
if(b[i]%7==0) continue;
else if(b[i]%10==7)continue;
else if((b[i]/10)%10==7)continue;
else if((b[i]/100)%10==7)continue;
else if((b[i]/1000)%10==7)continue;
else
{
c[j]=b[i];
j++;
}
for(i=0;i<j-1;i++)
printf("%d,",c[i]);
printf("%d\n",c[j-1]);
}
时间: 2024-10-26 18:21:02