请问这个程序的每一步的程序语言对的含义,越仔细越好感谢大佬qq1083136043
#include <stdio.h>
int main(void)
{
int i; int a,s,count = 0;
for(i = 100; i <=1000; i++)
{ s = 0; a = i;
while(a)
{ s = s+a%10; a = a/10;
}
if(s == 5)
{
count++; printf("%d ",i);
}
}
printf("总共有%d个数 ",count);}
所给的程序功能是查找100~1000之间有多少个数,其各位数码和为5。从下面程序的运行结果来看,符合条件的数(从104到500)共有15个。
关键在于查找的算法:把各位数码从个位开始向上逐位提取出来,并相加。程序中是通过while循环来实现的:
while(a)
{
s = s+a%10;a = a/10;
}
只要a不等于0,就会不断执行s = s+a%10;a = a/10;,拿a=104来看:
①s = 0+104%10=4,a = 104/10=10;个位4被提取出来了并加到s中,a =10,分离出百位和十位。a不等于0第2次执行此循环。
②s = 4+10%10=4+0=4,a = 10/10=1;十位0被提取出来了并加到s中,a =1,分离出百位。a不等于0第3次执行此循环。
③s = 4+1%10=4+1=5,a = 1/10=0;百位1被提取出来了并加到s中,a =0,提取完了,同时循环终止。
最后判断和s是不是5?
if(s == 5)
{
count++; printf("%d ",i);
}
若s == 5,判断条件满足,用count计数,并打印出这个数。
整个for循环就是不断的重复上述过程,直到i超过了1000而结束循环,最后执行,
printf("total number:%d
",count);把符合条件的总数count打印出来。
上一篇:如何看待小程序