單元三:重覆結構 – do…while,
while….,
壹、
do…while簡單的例子:progr3-1.c 本題RUN 成功,得分。
請完成猜數字遊戲
#include <stdio.h> #include <stdlib.h> #include <time.h> //使用time( )函數,必須使用的引入檔 int main( ) { int
guess;
//存放使用者猜的數 int
ans;
//存放電腦產生的答案 srand( (unsigned)
time(NULL) ); //啟動亂數產生器 ans =
rand( )%100+1;
//產生一個1~100的數
printf("Guess(1~100):");
scanf("%d",&guess); if (guess ==
ans)
if (guess > ans) printf(“
”);
system("PAUSE");
return 0; } |
【程式解說】:
1、srand( (unsigned) time(NULL) ); 以時間函數為亂數種子,運算產生出一堆亂數
2、rand( ) 函數,是從一堆亂數中取出一個任意亂數。
3、rand( ) % 100,可以把取出的數限制在 0 – 99 之間。
除以100取餘數的意思。
貳、
while簡單的例子:progr3-2.c 本題RUN 成功,得分。
程式功能:將一正整數反轉過來。如: 13579 -> 97531
#include
<stdio.h>
#include
<stdlib.h>
int main()
{
int a, rev;
while (1)
{
do
//輸入大於0的正整數
{
printf(“Input an integer:”);
scanf(“%d”, &a);
}
while
(a <=0);
printf(“The
reverse is:”);
while (a!=0)
//將正整數倒過來輸出
{
rev = a % 10; //取出a 的個位數
a =
a / 10;
printf(“%d”, rev);
}
printf(“\n\n”);
}
system("PAUSE");
return 0;
}
【程式解說】:
1、
while(1) 敘述表示當判斷條件的值爲1時,這個敘述永遠成立,所以程式主體會一直執行
2、
do{…..}while(a<=0);
是判斷輸入的數 a 是否為正整數。 若不是,則重複輸入直到 a 為正整數。
3、
a % 10 表示求 a 除以10 所得的餘數。
a / 10 表示求 a 除以10 所得的商數。