C 語言 講義 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A B C
函數 : for() 迴圈
用法:
for(起始值運算式;測試條件式;次數運算式)
{
程式碼;
}
例:
for(i=0;i<10;i=i+1)
{
程式碼;
...
}
完整的例子1:
#include<stdio.h>
main()
{
int i;
for(i=0;i<10;i=i+1)
{
printf("Hello ");
} /*重覆印10個 Hello*/
}
完整的例子2:
#include<stdio.h>
main()
{
int i;
for(i=0;i<10;i=i+1)
{
printf(" %d ",i);
} /*印 0 1 2 3 …9 */
}
千萬小心:無窮迴圈 (按 ctrl + c 可以中斷)
#include<stdio.h>
main()
{
int i;
for(i=0;i<10;i=i-1) /* 因為 i=0、-1、-2、…… 都小於 10 ,所以無法停止*/
{
printf(" %d ",i);
}
}
練習1 : 請印出 1、2、3、 …、10 (每行一個數字)
練習2 : 請印出 10、9、8、 …、1(每行一個數字)
練習3 : 請印出 1、3、5、 …、11 (每行一個數字)
練習4 : 請印出 10、8、6、 …、0、-2、-4 (每行一個數字)
完整的例子3:請計算出由 1+2+3+……+10 = ?
#include<stdio.h>
main()
{
int i,sum;
sum=0;
for(i=1;i<=10;i=i+1)
{
sum = sum + i;
printf("i= %d sum=%d \n",i,sum);
}
printf("the answer is %d \n",sum);
}
練習5 : 請計算出由 10+9+8+……+1 = ?
練習6 : 請計算出由 1+4+7+……+31 = ?
練習7 : 請設計可以由使用者輸入 n, 然後計算出由 1+2+3+……+ n = ?
練習8 : 請設計可以由使用者輸入 n, 然後計算出由 1+3+5+……+ n = ?
練習9 : 請設計可以由使用者輸入 n, 然後計算出由 1*2*3*……* n = ? (請小心 n的值,不能太大)
觀念 :{}中可以有{}
例:
for(a=1;a<10;a=a+1)
{
程式碼;
...
for(b=1;b<8;b=b+1)
{
程式碼;
...
}
程式碼;
...
} /*這種觀念叫雙重迴圈*/
完整的例子4:請印出下面的形狀
*
**
***
****
#include<stdio.h>
main()
{
int i,j;
for(i=1;i<=4;i=i+1)
{
for(j=1;j<=i;j=j+1)
{
printf("*");
}
printf("\n");
}
}
練習10 : 請印出下面的形狀
****
***
**
*
練習11 : 請印出下面的形狀
****
****
****
****
練習12 : 請印出下面的形狀
****
***
**
*
練習13 : 請印出下面的形狀
*******
*****
***
*
練習14 : 印出九九乘法表
練習14解答 1:
#include<stdio.h>
main()
{
int i,j;
for(i=1;i<=9;i=i+1)
{
for(j=1;j<=9;j=j+1)
{
printf("%d*%d=%d \n",i,j,i*j);
}
}
}
練習14解答 2:
#include<stdio.h>
main()
{
int i,j;
for(i=1;i<=9;i=i+1)
{
for(j=1;j<=9;j=j+1)
{
printf("%d*%d=%d ",i,j,i*j);
}
printf("\n");
}
}
練習14解答 3:
#include<stdio.h>
main()
{
int i,j;
for(i=1;i<=9;i=i+1)
{
for(j=1;j<=9;j=j+1)
{
printf("%2d*%2d=%2d ",i,j,i*j);
}
printf("\n");
}
}
練習14 : 請將2顆骰子所能擲出的所有點數狀況,都印出來 (例: 1+1=2, 1+2=3, ......)
練習15 : 請將3顆骰子所能擲出的所有點數狀況,都印出來 (例: 1+1+1=3, 1+1+2=4, ......)
練習16 : 猜年齡遊戲, 給幾行數字, 讓使用者找出他年齡所在的行數, 而可以正確猜出他的年齡