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