一、實驗目的與要求html
(1)掌握軟件項目我的開發流程。git
(2)掌握Github上發佈軟件項目的操做方法。github
1.防止「不夠減」的語句,當選擇減法且num1小於num2時不夠減不夠減的時候,用臨時變量交換兩個操做數;編程
2.防止「除數爲0」的程序漏洞,當num2被隨機取值到0時,就將num2強制置爲1,作除法時,將num1的值強制賦值給num1*num2,防止不能整除;小程序
而後電腦計算正確的結果提示用戶輸入答案而且電腦計算正確的結果。最後是判斷用戶是否答對了,答對了就返回1,不對則返回0(用來計算作對的題數)。以此循環!markdown
這個程序的缺陷是,當用戶輸入答案時,若用戶輸入了一個非整型字符,系統會崩潰;還有隻是0~10之間的簡單的運算,把範圍侷限了,但能夠改進。還有是不能進行小數的運算架構
include <stdio.h>app
#include <stdlib.h>dom
void main() { 編程語言
int n=0,count=0; printf("\n歡迎使用小學生四則運算練習軟件\n");
int ch=0;
printf("\n歡迎使用小學生四則運算練習軟件\n\n");
while(1)
{
if(count==10)
{
printf("恭喜你在10道練習裏作對了%d題! \n",n);
printf("\t1.繼續練習\n\t2.退出");
scanf("%d",&ch);
if(ch==2)
{
break;
}
}
n+=yusuan(); count++;
}
}
int yusuan()
{
int ranswer=0; //正確答案
int uanswer=0; //用戶輸入的答案
int t=0,n=0; //臨時變量
char op; //運算類別
int num1=0; //操做數1
int num2=0; //操做數2
srand(time(NULL)); //初始化隨機數
num1=rand()%10; //取0—9之間的隨機數
num2=rand()%10;
n=rand()%4+1; switch(n)
{ case 1: op='+'; break;
case 2: op='-'; break;
case 3: op='*'; break;
case 4: op='/'; break;
}
//加入一條防止「不夠減」的語句,當選擇減法且num1小於num2時不夠減
//不夠減的時候,用臨時變量交換兩個操做數
if((op=='-') && (num1<num2))
{ t=num1;
num1=num2;
num2=t;
}
//防止「除數爲0」的程序漏洞
//當num2被隨機取值到0時,就將num2強制置爲1
//作除法時,將num1的值強制賦值給num1*num2,防止不能整除
if(op=='/')
{
if(num2==0)
{ num2=1; }
num1=num1*num2;
//防止num1不能被num2整除的語句 }
//輸出測試題自己、提示用戶輸入
printf(" %d%c%d= ",num1,op,num2);
scanf("%d",&uanswer);
//程序計算正確結果
switch(op)
{ case '+': ranswer=num1+num2; break;
case '-': ranswer=num1-num2; break;
case '*': ranswer=num1*num2; break;
case '/': ranswer=num1/num2; break;
}
//評判,作對返回1,作錯返回0
if(uanswer==ranswer)
{ printf("\t作對了!\n");
return 1;
} else
{ printf("\t作錯了!\n");
return 0; }
}
運行結果:
PSP環節: