C 語言 講義 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A B C
觀念: 陣列 :
用法:
變數型態 變數名稱[陣列數量] ={初值,…} /* 綠色部份可以省略 */
例:
int a[4]={1,2,3,4} ;
完整的例子1:
#include<stdio.h>
main()
{
int i;
int a[4]={1,2,3,4} ;
for(i=0;i<=3;i=i+1) // 注意: c語言的陣列是從 0 開始排起,0、1、2、3
{
printf("Hello , %d .\n",a[i]);
}
}
完整的例子2:輸入10個學生的國文成績,並將10個人的成績輸出在螢幕上
#include<stdio.h>
main()
{
int i;
int a[10];
for(i=0;i<=9;i=i+1)
{
printf("請輸入 第%d個人的國文成績: ",i);
scanf("%d",&a[i]);
}
for(i=0;i<=9;i=i+1)
{
printf("%d : %d \n",i,a[i]);
}
}
練習1 : 輸入10個學生的國文成績, 並計算總分和平均成績
完整的例子3 : 輸入10個學生的國文、英文、數學成績, 並計算各科的總分和平均成績,並計算總分和總平均
#include<stdio.h>
void main()
{
int i,suma,sumb,sumc;
int a[11],b[11],c[11];
suma=0; sumb=0; sumc=0;
for(i=1;i<=10;i=i+1) // 我們可以故意空下第0格不用,從第1格開始排起
{
printf("input %d person Chinese:",i);
scanf("%d",&a[i]);
printf("input %d person English:",i);
scanf("%d",&b[i]);
printf("input %d person Mathematic:",i);
scanf("%d",&c[i]);
}
printf("No. Chine Engli Mathe \n");
printf("-----------------------");
for(i=1;i<=10;i=i+1)
{
suma = suma + a[i];
sumb = sumb + b[i];
sumc = sumc + c[i];
printf(" %2d : %5d %5d %5d \n",i,a[i],b[i],c[i]);
}
printf(" sum %5d %5d %5d \n",suma,sumb,sumc);
printf(" ave %5.1f %5.1f %5.1f \n",(float)suma/10.0,(float)sumb/10.0,(float)sumc/10.0);
}
完整的例子 4:另一種寫法
#include<stdio.h>
void main()
{
int i,sum[4];
int a[11],b[11],c[11];
sum[1]=0; sum[2]=0; sum[3]=0;
for(i=1;i<=10;i=i+1)
{
printf("input %d person Chinese:",i);
scanf("%d",&a[i]);
printf("input %d person English:",i);
scanf("%d",&b[i]);
printf("input %d person Mathematic:",i);
scanf("%d",&c[i]);
}
printf(" No Chine Engli Mathe Physi Chemi \n");
for(i=1;i<=10;i=i+1)
{
sum[1] = sum[1] + a[i];
sum[2] = sum[2] + b[i];
sum[3] = sum[3] + c[i];
printf(" %2d : %5d %5d %5d \n",i,a[i],b[i],c[i]);
}
printf(" sum %5d %5d %5d \n",sum[1],sum[2],sum[3]);
printf(" ave %5.1f %5.1f %5.1f \n",(float)sum[1]/10.0,(float)sum[2]/10.0,(float)sum[3]/10.0,);
}
練習2 : 輸入 ? 個學生的 ? 科成績, 並計算總分和平均成績 (? 的部份,程式一開始會問使用者)
練習3 : 輸入 4 季的北、中、南、東、西區的銷售量 ? 並計算季銷售量、區銷售量、總和
練習4 : 簡易的20*20的五子棋
練習5 : 輸入10個學生的國文成績, 先排序列出(由小到大)、計算總分和平均成績
練習 4解答:
#include<stdio.h>
void main()
{
int i,j,k,x,y;
char a[22][22];
for(i=1;i<=20;i=i+1) // 所有的格子都清成空的
{
for(j=1;j<=20;j=j+1)
{
a[i][j]=' ';
}
}
for(k=1;k<=401;k=k+1) // 重覆下棋 400 次
{
printf("please input x,y (0 0 : end of game) ?"); // 要求使用者輸入下棋的座標
scanf("%d %d",&x,&y);
if(x==0 && y==0)
{
k=500;
}
if(k%2==1) // 如果是奇數步,則下X, 偶數步,則下O
{
a[x][y]='X';
}
else
{
a[x][y]='O';
}
printf(" | x \n"); //重畫棋盤
printf(" |0 1 2 \n");
printf(" |12345678901234567890 \n");
printf("---+----------------------\n");
for(j=1;j<=20;j=j+1) //把棋子一個一個的畫上去
{
printf(" %2d|",j);
for(i=1;i<=20;i=i+1)
{
printf("%c",a[i][j]);
}
printf("\n");
}
}
}
練習 5解答:
檢定二的100分題目,考後公佈