简单C程序题目?

来源:百度知道 编辑:UC知道 时间:2024/05/09 18:11:53
#include <stdio.h>
void main()
{int a,b,c,d,e,f,g,h,i,j,k;
printf("请输入一个数字:");
scanf("%d%d\n",&a);
b=a*1;
c=a*2;
d=a*3;
e=a*4;
f=a*5;
g=a*6;
h=a*7;
i=a*8;
j=a*9;
k=a*10;
printf("%d*1=%d\t\t",a,b);
printf("%d*2=%d\n",a,c);
printf("%d*3=%d\t\t",a,d);
printf("%d*4=%d\n",a,e);
printf("%d*5=%d\t\t",a,f);
printf("%d*6=%d\n",a,g);
printf("%d*7=%d\t\t",a,h);
printf("%d*8=%d\n",a,i);
printf("%d*9=%d\t\t",a,j);
printf("%d*10=%d\n",a,k);}

为什么输入数字回车过后不马上显示结果,而要再打入一个回车才显示结果??
要再随便打入一个字符,数字都可以 才显示结果。

scanf("%d",&a);

scanf("%d%d\n",&a);

该成scanf("%d",&a); 试试

scanf("%d",&a);

将scanf("%d%d\n",&a); 改为
scanf("%d",&a);然后
将printf("%d*1=%d\t\t",a,b); 改为
printf("\n%d*1=%d\t\t",a,b);

对于scanf而言,双引号内的内容也就是你要输入的内容,而“%d%d\n”里竟然有一个回车,回车表示数据输入结束,而你要求把回车当成数据,这显然不可能。
修改后代码如下:
#include <stdio.h>
void main()
{int a,b,c,d,e,f,g,h,i,j,k;
printf("请输入一个数字:");
scanf("%d",&a);
b=a*1;
c=a*2;
d=a*3;
e=a*4;
f=a*5;
g=a*6;
h=a*7;
i=a*8;
j=a*9;
k=a*10;
printf("%d*1=%d\t\t",a,b);
printf("%d*2=%d\n",a,c);
printf("%d*3=%d\t\t",a,d);
printf("%d*4=%d\n",a,e);
printf("%d*5=%d\t\t",a,f);
printf("%d*6=%d\n",a,g);