这道C语言题目怎么打印不出来~

来源:百度知道 编辑:UC知道 时间:2024/05/15 23:36:58
#include<stdio.h>
void main()
{
int a,b,c,d=0,i;
for(i=100;i<1000;i++)
{
a=i/100;
b=(i-a*100)/10;
c=b%10;
if(a!=b&&b!=c&&a!=c)
printf("%d,%d,%d\n",a,b,c);
}

}
我把C=B%10改成c=(i-b*10)%100了可为什么打印出来的是从586开始的呢?应该怎么写??????

c=b%10
有问题

因为IF里的语句在循环的时候b和c总是相等的,总是假,所以打印不出来

同意上面的说法,你的c=b%10这个有问题,你上面执行a==1,b==0,你再这么你算
c==0所以if 后的条件一直是假所以就不能打印输出

b==c当然打不出了

打印不出来的原因如上面的朋友所说,c=b%10;致使b永远等于c,从而if判断永远不成立。
你为个程序好像目的是想打印出在所有三位数中,个位,十位,百位都不相等的数,要是这个目的的话,将c=b%10换成c=i-a*100-b*10;就OK了,你说的c=(i-b*10)%100显然不能满足要求了,在你的程序中最后求出的 a,b,c应该分别人这个三位数的百位十位个位。

应该跟判断条件有关
估计是直到586才满足你的条件
建议回去修改一下判断条件
就可以知道了.