题目说明:
(1)随机产生两个1~10的正整数,在屏幕上输出题目,如:5+3=?
(2)学生输入答案,程序检查学生输入答案是否正确,若正确,则输出“Correct”,否则输出“No Correct”
(3)共10道题目,每题10分,最后给出总成绩。
编程思路:
按功能分模块,将随机出题写在show()函数中,将答题测试写在test()函数中,在主函数中调用两者,完成程序功能。
代码;
#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>//rand():随机数生成器;
#include<time.h>//需要导入一个时间头文件;
#include<stdbool.h>//bool类型;
long show()
{
int num1,num2,x;
long s;
char c;
srand((unsigned) time(NULL));//用时间做种子,每次产生的随机序列不同;
num1=rand()%10+1;
num2=rand()%10+1;
x=rand()%4;
switch(x)
{
case 0:c='+';s=num1+num2;break;
case 1:c='-';s=num1-num2;break;
case 2:c='*';s=num1*num2;break;
default:c='/';s=num1/num2;
}
printf("%d%c%d=",num1,c,num2);
return s;
}
bool test(int n,int sum)
{
bool b;
b=(sum==n)?true:false;
return b;
}
int main()
{
int i,score=0,n;
long s;
for(i=0;i<10;i++)
{
printf("Problem number %d: ",i+1);
s=show();
scanf("%d",&n);
if(test(n,s))
{
printf("Correct\n");
score++;
}
else printf("No Correct\n");
}
printf("score: %d",score);
return 0;
}