为什么这个程序只能输入一次啊
#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;
} 展开
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;
} 展开
展开全部
getchar();这个函数,只能获取你第一次输入中的第一个字符,当你输入的name只有一个字符时,程序能正常运行:
但是如果你的name输出的字符超过1位,则从第2位起,后面的东西会被赋值给ID,然后会跳过对ID的输入:
有如果你直接输入S123 10 20 30的话,则只会输入一次就会结束:
c里面是通过空格来给scanf分配值的,所以输入的时候如果不确定需要输入多少个参数,那么你输入一个,回车一下,程序就会慢慢往下走,直到所有值输入完成:
另外关于你想输入一个名字的问题,你是想输入一个字符串吧,比如:Tom,字符和字符串是不一样的,不能简单的声明为char型,你可以在网上搜索一下c语言中字符串怎么输入
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询