输入一个int型正整数,判断各个位数上的数字之和是否能被7整除。两个不同的代码,却有一个相同的错误结果。其他验证数字均能正确判断(至少试过的是这样)
第一个代码:
#include
main()
{
int x,q;
int i=1;
scanf("%d",&x);
while(!(x>=0&&x<=9))
{
x=x/10;
i+=1;
}
q=i;
int number[i];
i=0;
if (x<10){
if (x==7){
printf("yes");
}else{
printf("no");
}
}else{
for (i=1;isum=0;
i=1;
for (i=1;iusum=sum/7;
if (usum*7==sum){
printf("yes");
}else{
printf("no");
}
}
return 0;
}
第二个代码:
#include
main()
{
int x,i,t,sum=0;
int a[100]={0};
scanf("%d",&x);
for(i=0;i<100;i++)
{
if(x>10)
{
a[i]=x%10;
x/=10;
t++;
}
else
{
i=0;
for(i=0;i<=t;i++)
sum+=a[i];
break;
}
}
if(sum%7==0)
printf("yes");
else
printf("no");
return 0;
}
两个均是输入588,输出no。编译无误。
累了,说不出来~ 。 ~
让588输出no
#include<stdio.h>
int main()
{
int x,sum=0;
scanf("%d", &x);
while (x)
{
sum += x % 10;
x /= 10;
}
if (sum % 7 == 0)
printf("yes");
else
printf("no");
return 0;
}