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 : 猜年齡遊戲, 給幾行數字, 讓使用者找出他年齡所在的行數, 而可以正確猜出他的年齡

C 語言 講義   1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  A  B  C