为什么这个程序只能输入一次啊

#include<stdio.h>intmain(){charname;intID;doubleg1,g2,g3,ave;printf("Entername:");nam... #include<stdio.h>
int main()
{
char name;
int ID;
double g1, g2, g3, ave;
printf("Enter name:");
name = getchar();
printf("Enter Students ID:");
scanf_s("%d", &ID);
printf("Enter 3 grades:");
scanf_s("%lf%lf%lf", &g1, &g2, &g3);
ave = (g1 + g2 + g3);
printf("--Name--ID--Grade1--Grade2--Grade3--Average--\n");
printf("%4c%6d%8.lf%8.lf%8.lf\n", name, ID, g1, g2, g3, ave);
return 0;
}
展开
 我来答
澈丶233
2019-10-17 · TA获得超过169个赞
知道小有建树答主
回答量:446
采纳率:94%
帮助的人:105万
展开全部

getchar();这个函数,只能获取你第一次输入中的第一个字符,当你输入的name只有一个字符时,程序能正常运行:

但是如果你的name输出的字符超过1位,则从第2位起,后面的东西会被赋值给ID,然后会跳过对ID的输入:

有如果你直接输入S123 10 20 30的话,则只会输入一次就会结束:

c里面是通过空格来给scanf分配值的,所以输入的时候如果不确定需要输入多少个参数,那么你输入一个,回车一下,程序就会慢慢往下走,直到所有值输入完成:

另外关于你想输入一个名字的问题,你是想输入一个字符串吧,比如:Tom,字符和字符串是不一样的,不能简单的声明为char型,你可以在网上搜索一下c语言中字符串怎么输入

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式