Digital Roots

来源:百度知道 编辑:UC知道 时间:2024/05/12 13:04:44
#include <stdio.h>

int main()
{
char dig[1000];
long tmp;
int i;

while(gets(dig) && dig[0] != '0')//这个是什么意思
{
for(tmp = i = 0; dig[i]; ++i)//我从没看见过有这样的for语句
{
tmp += dig[i]-'0';//这个是什么意思
}
printf("%d\n",tmp%9==0 ? 9 : tmp%9);
}
return 0;
}
这是我从网上找来的代码,但有的地方我看不懂,请高手帮我解答一下.

while(gets(dig) && dig[0] != '0')//这个是什么意思
当输入的字符dig不是'0'的时候

for(tmp = i = 0; dig[i]; ++i)//我从没看见过有这样的for语句
for的语法是:for(初始句;终止条件;循环间语句)
1、tmp =0, i = 0
2、每次循环后判断dig[i]是否为真,或者是否不为0
3、++i,每次循环后i自增1