主题:C程序请教
qtwg
[专家分:30] 发布于 2010-11-17 14:57:00
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int i,j,n,no;
printf("请输入你要输入数字的个数:");
scanf("%d\n",&i);
printf("输入一个数字");
for(j=0;j<i;j++)
{
scanf("%d",&no);
for(n=0;n<no;n++) /**输出no个'*'*/
printf("*");
printf("\n");
}
}
请问这有错吗,为什么运行的结果会是这样的呢,如图?
最后更新于:2010-11-17 15:00:00
回复列表 (共13个回复)
沙发
qtwg [专家分:30] 发布于 2010-11-17 15:04:00
为什么不是先输出“输入一个数字”这一句呢?
板凳
lukexc [专家分:50] 发布于 2010-11-17 17:09:00
#include "stdio.h"
void main()
{
int i,j,n,no;
printf("输入一个数字:\n");
scanf("%d",&no);
printf("请输入你要输入数字的个数:\n");
scanf("%d",&i);
for(j=0;j<i;j++)
{
for(n=0;n<no;n++) /**输出no个'*'*/
printf("*");
printf("\n");
}
}
//修改了下!
看下可以不!
3 楼
gqrm [专家分:230] 发布于 2010-11-17 19:15:00
呵呵,SCANF 之后请清一下缓冲中的数据。否则会将回车带给下一个地址,作为值出现。scanf ( " %s " , addressname ) ;
getchar ( ...... ) ; 更明显。
4 楼
nihaomal700 [专家分:20] 发布于 2010-11-18 12:38:00
#include "stdio.h"
void main()
{
int i,j,n,no;
printf("请输入你要输入数字的个数:");
scanf("%d\n",&i);//*[color=FF0000]按照你的思路,这里应该是scanf("%d",&i); 不要"\n"的.[/color]
printf("输入第一个数字:");
for(j=0;j<i;j++)
{
scanf("%d",&no);
for(n=0;n<no;n++) /**输出no个'*'*/
printf("*");
printf("\n");
}
}
记住不要在scanf语句中加入除格式控制字符串以外的任何东西.否则就容易出错的。比如按照你的格式,除了2,还应输入\n...
5 楼
nana_aoe [专家分:60] 发布于 2010-11-18 17:21:00
修改如下
#include "stdio.h"
void main()
{
int i,j,n,no;
printf("请输入你要输入数字的个数:");
scanf("%d",&i);
printf("你要输入数字的个数:%d\n",i);
printf("输入一个数字\n");
for(j=0;j<i;j++)
{
scanf("%d",&no);
for(n=0;n<no;n++) /**输出no个'*'*/
printf("*");
printf("\n");
}
}
总结,看scanf的用法,
//scanf(%d\n",&i); 错误
scanf("%d",&i); 正确
%d是i的格式,你再加\n,那是表示什么。。。。
你把printf的使用强加给了scanf,肯定是要出错的。
6 楼
fanghao520 [专家分:0] 发布于 2010-11-18 20:12:00
#include "stdio.h"
void main()
{
int i,j,n,no;
printf("请输入你要输入数字的个数:");
scanf("%d\n",&i);
for(j=0;j<i;j++)
{
scanf("%d",&no);
for(n=0;n<no;n++) /**输出no个'*'*/
printf("*");
printf("\n");
}
}
不知道是不是?
7 楼
li520rong [专家分:0] 发布于 2010-11-22 01:25:00
请教个事,我输入2这个数,到后面可以继续输入其他的数二得到相应的*号,但是输入1这个数,得到了第一个*之后就不能继续了呢
8 楼
cfj469933485 [专家分:950] 发布于 2010-11-24 21:10:00
/* Note:Your choice is C IDE */
#include <stdio.h>
int main()
{
int i,j,n,no;
printf("请输入你要输入数字的个数:");
scanf("%d",&i);//scanf("%d\n",&i); 不要"\n"的.以后注意一下就好了!
printf("输入一个数字");
for(j=0;j<i;j++)
{
scanf("%d",&no);
for(n=0;n<no;n++) /**输出no个'*'*/
printf("*");
printf("\n");
}
return 0;
}
9 楼
qtwg [专家分:30] 发布于 2010-11-25 14:18:00
又出状况了,输出的中文都成了“╟δ╩Σ╚δ─π╥¬╩Σ╚δ╩²╫╓╡─╕÷╩²:”
是输出,不是输入
10 楼
cfj469933485 [专家分:950] 发布于 2010-11-25 17:25:00
想输入汉字?汉字是二个字节的。问题是什么?不然不好回答啊!
我来回复