一、實驗內容
1、實驗要求:輸入若干名學生的成績(輸入人數或用負數結束均可),求其平均分,最高分和最低分,並指出最高分和最低分的學生(給出下標即可),輸入一個成績,說明是第幾個學生的成績。
代碼:
#include <stdio.h>
#define N 1000
int main()
{
int a,i=0,sum=0,max,min,m=0,n=0,e=0;
double average;
int score[N];
printf("人數\n");
scanf("%d",&a);
for(i=0;i<a;i++)
{
printf("學生成績\n");
scanf("%d",&score[i]);
sum=sum+score[i];
}
average=(double)sum/a;
printf("%.2lf\n",average);
max=score[0];
min=score[0];
for(i=0;i<a;i++)
{
if(score[i]>max)
{
max=score[i];
m=i;
if(score[i]<min)
{
min=score[i];
e=i;
}
printf("max=%d,min=%d,m=%d",max,min,m);
printf("input the score you want to find\n",m);
scanf("%d",&n);
for(i=0;i<a;i++)
{
if(n==score[i])
{
printf("%d\n",i);
m=m+1;
}
}
printf("符合要求的一共有%d個\n",m);
return 0;
}
運行結果:

2.
實驗要求:現有一個有序正整數數組(從小到大排序),輸入一個數,插入到數組中,要求插入后的數組仍然有序。對插入到最前、最后、中間位置三種情況進行驗證。
代碼:
#include <stdio.h>
#define N 10
int main()
{
int num[N]={3,6,9,12,16,19,23,26,29},i,j,n,a,b;
printf("請輸入一個數字:\n");
scanf("%d",&a);
for(i=0;i>=0;i++)
{
if(a<num[i+1])
{
for(j=8;j>i;j--)
{
num[j+1]=num[j];
}
num[i+1]=a;
break;
}
}
for(i=0;i<N;i++)
printf("%4d",num[i]);
return 0;
}
運行結果:

3.實驗要求:運用數組寫火柴棍
代碼:
#include <stdio.h>
int main()
{
int a,b,c,x,y,z;
int match[10]={6,2,5,5,4,5,6,3,7,6};
for(a=10;a<10;a=a-1)
{
x=match[a];
for(b=10;b<10;b=b-1)
{
y=match[b];
for(c=10;c<10;c=c-1)
{
z=match[c];
if(a+b==c&&x+y+z==12)
{
printf("%d+%d=%d\n",a,b,c);
}
}
}
}
return 0;
}
運行結果:

知識點總結:1.數組的基本格式 :數組類型 數組名稱 數組長度,數組的下標從零開始。
2.數組必須先定義后使用。
3.數組能處理大量數據,優化程序。
4.數組一旦創建,不能改變大小。
5.多方面考慮題目結果,使代碼完整。
6.變量對應的關系要搞清楚。
實驗總結: 1.數組與循環結構緊密相連,循環變量的值隨數組元素的下標變化。
2.注意數組越界問題。
3.注意數組中插入數字時,其后面的數字位置都加1.
4.數組不能被賦值。
