(1)ctrl+c 強迫終止指令
(2)時間函數,需include time.h
(3)亂數函數,需include stdlib.h
(4)修正Scanf的bug,需include conio.h
(5)for/while/do.while迴圈
// 修正Scanf的bug-字元 / 字串
# include <conio.h>
// 字元輸入的修正-不接收Enter
//第二筆資料輸入若是字串或字元,會接收Enter導致無法輸入
printf("請輸入字元:");
char ch;
// scanf("%c",&ch);
ch = getche();
// 不接收 Enter 字元(\r)
// getche()輸入字元會顯示螢幕
// getch()輸入字元不會顯示螢幕(適合用於密碼輸入)
printf("\n");
printf("字元是:%c\n",ch);
// 字串輸入的修正-接收空白字元,可以打句子
printf("請輸入字串:");
char str[50];
// scanf("%s",str); //字串本身就有位置,不加 &
gets(str);
printf("字元是:%s\n",str);
//確認是否質數
int i,j,check,count = 0;
// i是從2到100的整數
for (i = 2;i <= 100; i++){
//check = True
check = 1;
//j是從2到i的整數
for(j = 2; j < i ; j ++){
//如果可以被j整除,check = False
if (i % j == 0 ){
check = 0;
break;
}
}
//如果這個i不會讓j整除,就會印出
if(check){
printf("%d\t",i); //印出質數
count++; //加總質數的數量
}
}
printf("\n\n除了1共有%d個質數。\n",count);
// 無限迴圈的應用:強制使用者輸入正確
int number;
while(1){
int number;
printf("請輸入1~10整數: ");
scanf("%d",&number);
if(number >= 1 && number <=10){
break;
}
}
printf("程式繼續往下執行......\n");
printf("number = %d\n", number);
## 以時間做亂數種子設計終極密碼
srand(time(0));
// 若無用亂數種子,C語言會是固定亂數
// 時間函數,需include<time.h>
// 亂數函數, 需include<stdlib.h>
int number = rand() % 100; //從 0~32767的範圍縮小到0~100
int min = 1, max = 100, ans, count = 0;
while(1){
printf("猜猜%d ~ %d之間的正整數",min,max);
scanf("%d",&ans);
count++;
if(ans > number){
max = ans;
}
else if(ans < number){
min = ans;
}
else{
printf("BOM BOM....");
break;
}
system("cls"); // 清除畫面,需import<stdlib.h>
}
printf("\n共猜了%d次",count);
## 猜骰子大小 (do-while迴圈)
srand(time(0));
int i, number=3;
for(i = 1; i <= 100; i++)
{
number = rand() % 6 + 1;
}
int ans;
char check; //y要繼續猜,n不猜
do
{
printf("請輸入要猜的答案: ");
scanf("%d",&ans);
if(ans == number)
{
printf("你猜對了\n");
break;
}
else
{
printf("你猜錯了\n");
printf("是否要繼續再猜:(y/n) ");
check = getche();
printf("\n");
}
} while(check =='y');