1樓:匿名使用者
/**** 歡迎使用兩位數的加減法計算練習程式 ***90 - 14 = 76
恭喜!答對了!
你還要再做一題嗎?(y/n) : y
50 + 14 = 64
恭喜!答對了!
你還要再做一題嗎?(y/n) : y
64 - 44 = 20
恭喜!答對了!
你還要再做一題嗎?(y/n) : y
55 + 7 = 62
恭喜!答對了!
你還要再做一題嗎?(y/n) : n
你的答題正確率為100.00%,再見!
請按任意鍵繼續. . .
press any key to continue*/#include
#include
#include
int main()
printf("%d + %d = ",a,b);
scanf("%d",&ans);
if(ans == a + b)
else
break;
}case 1:
printf("%d - %d = ",a,b);
scanf("%d",&ans);
if(ans == a - b)
else
break;}}
numofques++;
printf("你還要再做一題嗎?(y/n) : ");
fflush(stdin); //
scanf("%c",&inquiry);
}while(inquiry != 'n' && inquiry != 'n');
printf("你的答題正確率為%.2lf%%,再見!\n",numofright*100./numofques);
system("pause");
return 0;}
2樓:
printf("%d-%d=");
你這沒輸入引數,當然就是0-0了,
定義的區域性變數只在{}體的內部有效,所以不會有衝突,因為在你下次迴圈之前這個變數的生命週期就結束了,也就是說,你再次定義的時候,之前定義的那個變數已經不存在了。
3樓:匿名使用者
原始碼中存在4處bug:
1. line36:printf("%d-%d="); //應為printf("%d-%d=", a, b);
為避免輸入緩衝異常,應於%c前加空格:scanf(" %c",&inquiry);
3. line54:while(inquiry=='n'||inquiry=='n'); //控制條件寫反了
4. line55:printf("你的答題正確率為%%f,再見!",numofright*10./numofques);
//應為:printf("你的答題正確率為%.2f%%,再見!", numofright*100.0/numofques);
另外關於變數ans,由於在case塊中申請和釋放,本身沒有異常,但效率太低,變數在main()中宣告一次,重複使用就可以了。
4樓:
mis_丫已回答你程式中的bug問題,關於「定義同一個變數」,那只是你的理解不對,c語方規定,使用變數前要有顯式的定義,也就是讓編譯器知道是什麼型別,知道如何使用它,而程式編譯後並沒有一個定義的過程,就是按定義時的型別直接使用了一個記憶體空間,所以不存在重複定義同一變數的問題,你所擔心的問題是不存在的
5樓:
rand()%2產生的只有0和1
rand()%2+1= 0,1,2
rand()%100 產生的只有0~99
rand()%100=0,1,,,,,。。。。。99,100請你補充一下case 1時的printf
還有最後一個printf裡面的兩個%會列印出一個% 請你改一下
6樓:mis_丫
printf("%d-%d=");改成printf("%d-%d=",a,b);
在scanf("%c",&inquiry);前面加個fflush(stdin);把快取區清空
還有while(inquiry=='n'||inquiry=='n');邏輯有誤
7樓:匿名使用者
srand(time(null));改成srand((unsigned int)time(null));試試
c語言問題,C語言問題C語言問題
沒有縮排,看來比較累 但是輸入一串字元以後要輸入結束標誌eof表示你的輸入結束了 如果你是unix,就用ctrl d,dos就用ctrl z include define maxline 1000 maximum input line length int getline char line,int...
c語言問題,C語言問題C語言問題
把檔案中所有逗號用空格替換。把if fp fopen goods.dat rb null 改成fp fopen goods.dat r null 把 feof fp 換成 0。把 一行刪除。以上3 4也可以在while前新增一行 解決 把printf s,2s,d,d n name,price,in...
c語言問題,C語言問題
您好,c語言經典100題 題目 有1,2,3,4個數字,能組成多少個互不相同且無重複數字的三位數 都是多少 1.程式分析 可填在百位,十位,個位的數字都是1,2,3,4.組成所有的排列後再去 掉不滿足條件的排列.2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成.利潤 i 低於或等於10...