Lab 1/20 do while迴圈練習
參考程式:
====================
#include
void main()
{
int a;
do
{
printf("請輸入正整數:");
scanf("%d",&a);
}while(a<=0);
printf("您所輸入的數字為%d\n",a);
}
====================
課堂練習:
輸入一個正整數n(必須被驗證,如不符合要重新輸入)
使用do while迴圈,輸出n!的結果
P.S. n!=1*2*3*.....*n
10 Comments:
#include stdio.h
#include stdlib.h
#include time.h
int main()
{
int n,sum=1,a=1;
do
{
printf("Enter a positive number.\n");
scanf("%d",&n);
for(a=1;a<=n;a++)
{
sum=sum*a;
}
if(n>0)
{
printf("The total is %d.\n",sum);
}
else if(n==0)
{
printf("The total is 1.\n");
}
else
{
printf("Can't calculate.\n");
}
}while(n<=0);
return 0;
}
#include stdio.h
#include stdlib.h
#include time.h
void main()
{
int a,n;
do
{
printf("請輸入正整數:");
scanf("%d",&a);
}while(a<=0);
printf("\n");
n = a;
do
{
a--;
n = n * a;
}while(a>1);
printf("%d\n",n);
}
#include stdio.h
int main()
{
int i=1,n,sum;
printf("請輸入正整數\n");
scanf("%d",&n);
sum=1;
if(n<0)
{
printf("\n");
printf("您輸入錯誤(請不要輸入負整數)\n\n");
return 0;
}
do
{
sum=sum*i;
i++;
}while(i<=n);
printf("n!=%d\n",sum);
return 0;
}
#include"stdio.h"
void main()
{
int a,b=1,sum=1;
printf("輸入正整數a,可以算出a!\n");
do
{
printf("a=");
scanf("%d",&a);
if(a<0)
printf("請輸入正整數!!!\n");
}
while(a<=0);
do
{
sum=sum*b;
b++;
}
while(b<=a);
printf("n!=%d\n",sum);
}
#include < stdio.h >
int main()
{
int a,b=1,c;
do
{
printf("請輸入正整數:");
scanf("%d",&a);
}while(a<=0);
c=a;
do
{
b=b*a;
a--;
}while(a>0);
printf("%d!=%d\n",c,b);
return 0;
}
給煜峰:
建議你將計算n!的for迴圈放入
(n>0)的if敘述裡面,以節省資源
因為其他條件狀況下n!的動作是多餘的
給銘威:
幾次看你寫程式下來
感覺你的思路都還算清楚
觀念都還不錯
只是對於C語言的語法使用上還不熟悉
多給自己一點時間跟經驗
相信會有不錯的表現!!
給致賢:
1.你的n!的寫法我覺得很棒,我好像頭一次看到這樣的寫法,把0!的狀況也可以一併涵蓋,可以偷偷讓我學起來嗎^^"~~
2.不過阿...人總是會犯錯,當我輸入負數的時候,請給我再一次機會重新輸入好嗎??不要這麼絕情啦!!Orz
給國鈞:
你的觀念也有了
不過有一個小細節沒有注意到
你試著輸入"0"
感覺上程式有令人不明白的反應
試著去改改看
問題的方向大概是在if的條件判斷跟do-while的條件判斷那邊
給裕盛:
恩~~你的學習狀況一直都很穩
希望繼續保持下去!!
也謝謝你在課堂上跟同學互相討論
真的幫了我不少忙
Post a Comment
<< Home