C语言菜鸟级程序问题--在线等答案 欢迎各界人是

来源:百度知道 编辑:UC知道 时间:2024/06/15 13:36:22
main()
{long i,j,k;
printf("shu ru 5 wei yi nei shu \n ");
scanf("%ld",&i);
for(j=9;i==i%j;j=(j/9*10+1)*9)
k++;
printf("%ld\n",k);
}

求输入一个数的位数 如 12342 输出 5

语法没问题~ 就是不出正确答案
main()
{long i,j=1,k,a;
printf("shu ru 5 wei yi nei shu \n ");
scanf("%ld",&i);
for(j=9;i==i%j;j=(j/9*10+1)*9) /* 这个j 从9 到-99再到 -999...依次往上涨 */
k++;
printf("%ld\n",k);
}

三个问题:
1.初始化,long k=1;没有初始化就k++肯定有问题.
2.i==i%j改为i!=i%j,这是逻辑问题,为什么自己想
3.main()一定要有返回值,

main()
{long i,j,k=1,a;
printf("shu ru 5 wei yi nei shu \n ");
scanf("%ld",&i);
for(j=9;i!=i%j;j=j*10+9)k++;
printf("%ld\n",k);
}
可以的,我试过了

y用if吧

if(i==i%9)
k=1;
else if(i==i%99)
k=2;
........相信你能看懂 就凭你那个j 呵呵