【发布时间】:2012-09-29 23:23:23
【问题描述】:
我正在用 C 编写一个超级简单的基于命令行的程序。这只是一个小测试,代码非常简单。所以它的意思是向用户询问他们的姓名、数学成绩、英语成绩、计算成绩。然后它会计算出他们的平均成绩,并告诉他们输入的名字。是的,我知道这是一个非常简单的程序,但我仍然做错了。
问题是,我的代码的一部分将首先运行,告诉用户输入他们的姓名,然后一旦他们这样做并按 Enter,我的其余代码将立即运行,然后停止工作。很奇怪,我只是不明白出了什么问题。
#include <stdio.h>
int main(int argc, const char * argv[])
{
char chr;
char firstname;
int mathsmark, englishmark, computingmark, averagemark;
printf("What is your name?\n");
scanf("%c", &firstname);
printf("\n");
printf("What is your maths mark?\n");
scanf("%d", &mathsmark);
printf("\n");
printf("What is your english mark?\n");
scanf("%d", &englishmark);
printf("\n");
printf("What is your computing mark?\n");
scanf("%d", &computingmark);
printf("\n");
printf("Your name is: %c", firstname);
printf("\n");
averagemark = (mathsmark + englishmark + computingmark) / 3;
printf("%d", averagemark);
printf("\n");
chr = '\0';
while (chr != '\n') {
chr = getchar ();
}
return 0;
}
【问题讨论】:
-
如果我们所有的名字都是一个字母,那就太棒了。
-
停下手头的工作,找一本关于 C 编程的好书。了解字符串和字符数组的工作原理。
-
但是 %c 仅仅意味着字符。我没有将名称定义为一个字符长吗?
-
@Supertecnoboff,
char firstname;= 一个字符。 -
@chris 但“char firstname”只是定义一个字符并将其称为“firstname”...??