原代碼問題
void main() {
int a,b;
srand(time(0));
a=rand()%10;
b=rand()%10;
printf("%d+%d=\n",a,b);
} // 無循環,執行完即退出,控制台關閉
修正版:生成 5 道題並暫停
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand((unsigned)time(NULL));
for (int i = 1; i <= 5; i++) {
int a = rand() % 10;
int b = rand() % 10;
printf("第 %d 題: %d + %d = \n", i, a, b);
}
system("pause"); // VS 調試模式下防止控制台自動關閉
return 0;
}
知識點
srand(time(0)) 僅需調用一次,放在循環外。
rand() % 10 產生 0-9,若需 1-10 用 rand() % 10 + 1。
- VS「調試」模式 (F5) 執行完自動關閉控制台,「不調試」 (Ctrl+F5) 會自動暫停。