南家三姐妹百度云网盘:基础C语言问题~谢谢

来源:百度文库 编辑:高校问答 时间:2024/05/07 05:39:28
main()
{
int a,b,c,n;
scanf("%d",&n);
if(n>=100&&n<=999)
for(n=100;n<=999;n++);
a=n/100;
b=n/10%10;
c=n%10;
printf("%d %d %d",a,b,c);
else
printf("%c",****);
}
大家帮我看看错在哪,指出来,谢谢

main()
{
int a,b,c,n;
scanf("%d",&n);
if(n>=100&&n<=999)
for(n=100;n<=999;n++);
{a=n/100;
b=n/10%10;
c=n%10;
printf("%d %d %d",a,b,c);
}
else
printf("****");/*没有输出变量的话就不要加什么格式符了*/
}
朋友,你做的这个问题是不是说:随便输入一个三位数,然后输出它的百位,十位,个位来啊?是的话你可以不要那那写嘛!没有必要用循环的就尽量不要去用循环,记住哦!下面的是我根据你的程序来改的:
main()
{
int a,b,c,n;
scanf("%d",&n);
if(n>=100&&n<=999)
{a=n/100;
b=n/10%10;
c=n%10;
printf("%d %d %d",a,b,c);
}
else
printf("****");
}

你的n怎么没有初值呢??
没有初始值是不能判断的啊,和其他程序不一样的哦
看看是不是这个地方错了

对哦~~括号都没有呀~~呵呵~~

int a,b,c,n;
scanf("%d",&n);
if(n>=100&&n<=999)
for(n=100;n<=999;n++) /*去掉;*/
{ /*添加括号*/
a=n/100;
b=n/10%10;
c=n%10;
printf("%d %d %d ",a,b,c);
} /*添加括号*/
else
printf("%c",'*'); /*修改*/

程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

楼上的 说得对 ,如果是输入一个三位数,输出百,十,个位是不用循环的。你的程序错到你在循环里面,n是从100-999赋了很多次的值。如果你是写的是把所有的三位数的百,十,个位输出来,那前面的给n赋值就是多余的了
还有就是你对FOR语句的使用,FOR一般不加括号的时候是只循环它接下来得最近的一条语句,如果是多个语句循环的话,就要加{}了

用循环做什么呢
你是输入一个数吧,要是用循环那每个数都输出来多的不得了