#46 小小型應用系統開發(一)______100以內的四則運算
阿新 • • 發佈:2018-12-12
編寫程式,用隨機數實現100以內的加、減、乘、除運算,其中和與積不能超過100,差不為負(即須大減小),商不為小數或分數(即必須整除)。要求總計輸出10個運算式,每輸出一個運算式,等待輸入結果,然後進行對錯判斷並輸出。最後輸出統計答對的題數與分數。
分析
主程式包括以下幾個部分:
- 變數定義(運算元a,b,結果d,運算子c,答對題數統計sum等)
- 開始迴圈輸出運算式
- 產生隨機數(先初始化)
- 判斷隨機數是否滿足條件
- 輸出運算式
- 等待輸入
- 結果判斷
- 結束迴圈輸出運算式
- 輸出統計資料
程式碼
/**
*Copyright @2018,CSDN學院
*All rights reserved.
*檔名稱:main.c
*作 者:袁生
*完成日期:2018年9月27日
*版 本 號:v1.0
*問題描述:100以內的四則運算(兩個數)
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a,b,d,t; //定義兩個運算元a,b,結果d,輸入結果t
char c; //運算子c可取“+、-、×、÷”
int i,sum=0; //題目數量i,答對數目sum
srand(time(0)); //初始化隨機數發生器
/**< 產生資料 */
for(i=0;i<10;i++)
{
a=rand()%100+1;
b= rand()%100+1;
c=rand()%4; //0表加,1表減,2表乘,3表除
/**< 資料合格判斷及算式顯示 */
printf("第%d題:",i+1);
switch(c)
{
case 0:
while((d=a+b)>100) //保證和在100內
{
a=rand()%100+1;
b=rand()%100+1;
}
printf ("%d + %d = ",a,b);
break;
case 1:
while(a>100||b>100) //被減數小於100
{
a=rand()%100+1;
b=rand()%100+1;
}
if(a<b) //被減數大於減數
{
d=a;
a=b;
b=d;
}
d=a-b;
printf("%d - %d = ",a,b);
break;
case 2:
while((d=a*b)>100) //保證積小於100
{
a=rand()%100+1;
b=rand()%100+1;
}
printf("%d × %d = ",a,b);
break;
case 3:
while(a>100||b>100||(a*b==0)) //保證被除數小於100且除數不為0
{
a=rand()%100+1;
b=rand()%100+1;
}
if(a<b) //被除數必須大於除數
{
d=a;
a=b;
b=d;
}
a=(a/b)*b; //保證整除
d=a/b;
printf("%d ÷ %d = ",a,b);
break;
}
/**< 輸入你的計算結果 */
scanf("%d",&t);
if(d==t)
{
sum++;
printf("正確\n");
}
else
printf("錯誤\n");
}
/**< 輸出答對題數和得分 */
printf("答對 %d 題,得分:%d\n",sum,sum*10);
return 0;
}