【问题标题】:Stack in loop over and over循环堆叠
【发布时间】: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' 位。

标签: c arrays loops char


【解决方案1】:

您必须将所有内容包含在另一个循环中,当用户输入'n' 时应该中断。

类似:

bool finished = false;
while (!finished) {
  // reset status of variables
  while (count < 10) {
    // your actual code
  }

  finished = /* users typed y or n */
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    相关资源
    最近更新 更多