C语言小学生加法题


本关任务:编写一个程序,模拟教师给小学生出加法考试题,并统计得分。具体如下: 连续出10道110以内的加法题,出一题答一题,按每题10分统计总得分。通过计算机输入两个110之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Not correct! Try again!”,最多给三次机会,每多做一次扣1分,如果三次仍未做对,则显示“Not correct. You have tried three times! Over!” 最后,打印出总分和做错的题目数量。

根据提示,在右侧编辑器补全函数AddTest(),Print(),GiveScore(),分别用于测试答案,打印提示,对答题情况进行评分。在main函数中输入10组两个1~10之间的正整数作为加数,统计答题情况并输出总分和做错的题目数量。

 1 #include <stdio.h>
 2 #include  <stdlib.h>
 3 #include <time.h>
 4 #define TRUE 1
 5 #define FALSE 0
 6 
 7 int  AddTest(int a, int b);
 8 void Print(int flag, int chance);
 9 int GiveScore(int a,int b);
10 
11 int main()
12 {
13     int a,b,totalScore = 0,errorCount = 0;
14     int i;
15     int gs;
16     //连续出10道题,一题一答,每题满分10分,统计总得分和总的错题数量
17     /*************Begin*************/
18     for(i=1;i<=10;i++){
19         a=rand()%10+1;
20         b=rand()%10+1;
21         printf("%d:%d+%d=\n",i,a,b);
22          gs=GiveScore(a,b);
23         totalScore=totalScore+gs;
24         if(gs==0){
25             errorCount=errorCount+1;
26 
27         }
28 
29     }
30     /*************End***************/
31     printf("score = %d, error numbers = %d\n", totalScore, errorCount);
32     return 0;
33 }
34 
35 // 函数功能:计算两整型数之和,如果与用户输入的答案相同,则返回1,否则返回0
36 int  AddTest(int a, int b)
37 {
38     int s;
39 
40     scanf(" %d",&s);
41     if(s==a+b){
42 
43     return 1;
44     }else{
45     return 0;
46     }
47 
48 
49 
50 }
51 
52 // 函数功能:输出结果正确与否的信息,flag标志结果正确与否,chance记录同一道题做了几次
53 void Print(int flag, int chance)
54 {
55     if (flag == TRUE){
56 
57         printf("Right!\n");
58     }
59 
60     else if (chance < 3){
61     printf("Not correct. Try again!\n");
62 
63     }
64     else{
65 
66     printf("Not correct. You have tried three times! Over!\n");
67     }
68 
69 }
70 
71 // 函数功能:对题目a+b进行评分,满分10分,最多答三次,每多答1次扣1分
72 int GiveScore(int a,int b)
73 {
74 
75 
76         int chance=1,score=0,flag=0;
77         for(chance=1;chance<=3;chance++){
78             flag=AddTest(a,b);
79             Print(flag,chance);
80             if(flag){
81 
82             score=10-chance+1;
83             break;
84             }else{
85                     if(chance<3){
86 
87                     printf("%d+%d=\n",a,b);
88                     }
89 
90             }
91 
92         }
93 
94         return score;
95 
96     /*************End***************/
97 }

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM