简单的C程序数学测验

时间:2013-11-22 18:03:41

标签: c

好的,作为一名初学程序员,我的任务是创建一个简单的数学测验程序。它应该提示用户在他们的答案是对还是错的时候询问,祝贺或通知用户有多少问题。然后在程序结束时打印出正确的数字和错误的数字。我已经成功完成了所有这一切,现在我的代码唯一的问题是它一遍又一遍地问同样的问题。我在这里不知所措,所以任何帮助都会受到赞赏,谢谢。

   #include <stdio.h>
   #include <stdlib.h>
   int main (void)

    {
    int i;
    int response;
    int correctAnswers = 0;
    int incorrectAnswers = 0;

    printf("\nMath Quiz\n");
    printf("Please enter # of problems you would wish to try:");
    scanf("%d", &response);

    if(response == 0)
    {
        printf("\nThanks for playing!\n");
        return 0;
    }

    for(i=0; i<response; i++)
    {
        int answer = 0;
        int a = rand() % 12;
        int b = rand() % 12;
        printf("\n%d * %d = ",a ,b);
        scanf("%d", &answer);
        if((a * b) == answer){
            printf("\nCongratulations You are correct!\n");
            correctAnswers++;
        }
        else{
            printf("Sorry you were incorrect!\n");
            incorrectAnswers++;
        }

    }
    printf("\n\nYour Results:\n\n\n");
    printf("Number Incorrect: %d\n", incorrectAnswers);
    printf("Number Correct: %d\n", correctAnswers);
    if(correctAnswers > incorrectAnswers){
        printf("You Passed!\nGood work!\n\n");
    }
    else{
        printf("You did not pass!\nYou need more work!\n\n");
    }

    return 0;
}

此外,对格式化的任何批评都非常受欢迎。谢谢!

2 个答案:

答案 0 :(得分:3)

您需要了解randon number generator在C中的工作原理。

rand()仅生成伪随机数。这意味着每次运行代码时,您都会得到完全相同的数字序列

使用srand功能根据源编号生成随机数。如果您想要经常更改,请使用系统时间。

srand(time(NULL));

还要包含头文件time.h以使用time函数。

在调用rand()之前调用该函数。如果在程序中调用srand()之前没有调用rand(),就好像调用了srand(1):每次执行程序时种子值都是1,< strong>生成的序列将始终相同。

答案 1 :(得分:1)

在您的代码中使用此srand,就像这样......

int a;
int b; 

srand(time(0));
a  = rand() % 12;
b  = rand() % 12;