C語言問題

2022-10-08 06:26:32 字數 2247 閱讀 2158

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...