【发布时间】:2012-12-11 09:24:42
【问题描述】:
我有 C 程序。
假设老师聘请您作为软件顾问编写一个程序,帮助讲师加快他们对多项选择题的评分。对于这个程序,您需要使用 C 编程语言做原型程序来标记由 10 道选择题组成的试卷。
每个问题有 a、b、c 和 d 四个选项。讲师需要查看学生的答题卡并输入答案(a、b、c 和 d)
逐个。 C 程序必须将答案与解决方案进行比较,如果答案正确则输出/,如果答案不正确则输出x,然后程序必须从总共 10 分中计算获得的分数。
示例。
question 1: a/
question 1: bx
假设答案分别是 (a, b, c, d, a, b, c, d, a, b),我必须要求用户按y 再次循环,n 退出循环。
z='y','n';
while (z=='y')
{
while ( count<10)
{
printf("\n question #%d:",count+1);
r=getch();
while(r!='a' && r!='b' && r!='c' && r!='d')
{
r=getch();
}
putch(r);
if (r==answer[count])
{
putch('/');
mark=mark+1;
}
else
{
putch('x');
}
count++;
}
}
printf("\n\n the mark is: %d / 10", mark);
printf("\n\n continue? (y / n)");
z=getch();
printf("\n\n ");
system("pause");
return(0);
【问题讨论】:
-
z = 'y', 'n';构造有点奇怪。通常,GCC 会为此发出警告。它将'y'分配给z,然后忽略该值;它评估'n'并忽略它。删除, 'n'位。