C语言程序题疑问

来源:百度知道 编辑:UC知道 时间:2024/05/03 11:18:52
1. 以下程序是选出能被3整除并且至少有一位是5的两位数,打印出所有这样的数及个数。
sub(int k,int n) k就是所求的数
{ int a1,a2;
a2= (8) k/10 ;
a1=k- (9) a2*10 ;
if(k%3==0&&a2==5)||(k%3==0&&a1==5)
{ printf("%d",k);n++;return n;}
else return -1;
}
main()
{ int n=0,k,m;
for(k=10;k<100;k++)
{ m=sub(k,n);if(m!=-1)n=m;}
printf("\nn=%d",n);}

第(8)、(9)里分别填k%10 和a2 也可以吧?

a1,a2分别代表个位和十位的数字,a1=K%10可以得到个位,但a2=k-a1得到是两位数,应该是,(k-a1)/10吧。

1 % 10 -> 1
1 / 10 -> 0

-

1 -> 1
1 / 10 * 10 -> 0

上机 就能得到答案,不需要到这里问