1.輸入若干名學生的成績(輸入人數或用負數結束都可),求其平均分,最高分和最低分,並指出最高分和最低分的學生(給出下標便可),輸入一個成績,說明是第幾個學生的成績。程序員
# include <stdio.h> # define N 100 int main () { int score [N] ,n,sum, i,max,min,index,grade,index1,index2; double average ; printf("輸入學生的個數:\n"); scanf("%d",&n); for (i=0;i<n;i++) { printf("輸入學生的成績:\n"); scanf("%d",&score [i]); } //平均值 sum=0; for (i=0;i<n;i++) { sum+=score[i]; } average=(double)sum/n; printf ( "The average is:%.2f\n" , average ) ; //最大值 max=score[0]; index=0; for(i=0;i<n;i++) { if(score[i]>max) { max=score[i]; index=i; } } printf("最大值爲%d,下標爲%d\n",max,index+1); //最小值 min=score[0]; index1=0; for(i=0;i<n;i++) { if(score[i]<min) { min=score[i]; index1=i; } } printf("最小值爲%d,下標爲%d\n",min,index1+1); //學生位置 index2=0; printf("請輸入一個學生的成績:\n"); scanf("%d",&grade); for(i=0;i<n;i++) { if(grade==score[i]) { index2=i; printf("此學生是第%d個學生",index2+1); break; } } return 0; }
2.現有一個有序正整數數組(從小到大排序),輸入一個數,插入到數組中,要求插入後的數組仍然有序。對插入到最前、最後、中間位置三種狀況進行驗證。數組
# include <stdio.h> # define N 11 int main () { int a,b,c,d,i; int scare [N]={1,3,5,7,9,11,13,15,17,19}; printf("請插入一個數字:\n"); scanf ("%d",&a); d=11; for (i=0;i<11;i++) { if (a<scare[i]) { d=i+1; printf("插入到%d位\n",d); break; } } for (i=d-1,c=N-1;i<=c;c--) { scare[c]=scare[c-1]; } scare[i]=a; for (i=0;i<N;i++) { printf(" %d",scare[i]); } return 0; }
3.用數組實現火柴棍等式spa
# include <stdio.h> int main () { int a,b,c,sum; int match[10]={6,2,5,5,4,5,6,3,7,6}; c=0; sum=0; for (a=0;a<=9;a++) for (b=0;b<=9;b++) { c=a+b; if(c>9) { break; } sum=match[a]+match[b]+match[c]; if (sum==12) { printf("%d+%d=%d\n",a,b,c); } } return 0; }
附加題3d
輸入一行任意長的數字,用數組元素做爲計數器統計每一個數字出現的次數。用下標爲0的元素統計0出現的次數,用下標爲1的元素統計1出現的次數…code
二.知識點:blog
1.一維數組的定義方式: 數據類型 數組名[數組長度];排序
2.數組的特色內存
(1)數組中的每個元素都屬於同一種數據類型 (2)數組一旦建立,不能改變大小 (3)數組中的元素在內存中是連續依次排列的io
3.(1)一維數組的引用 數組必須先定義,後使用 (2)只能逐個引用數組元素,不能一次引用整個數組(3) 每一個數組元素是一個數組類型的變量class
4.(1)數組元素表示形式: 數組名[下標]
(2)下標從0開始
(3)容許快速隨機訪問
(4)引用時下標容許是int型變量或表達式 a[i]
(5)C語言對數組不做越界檢查,使用時要注意
越界的數組訪問可能致使程序崩潰,所以,這是程序員的責任來保證程序只使用有效的下標值:[0,數組的大小-1]
5.一維數組的賦值
(1)初始化方式 int a[5]={1,2,3,4,5}; 等價於:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5;
(2)說明:<1> 數組不初始化,其元素值爲隨機數<2>只給部分數組元素賦初值,則其後的元素被初始化爲0<3>當所有數組元素賦初值時,可不指定數組長度
6.在數組定義後對數組進行動態賦值 一般經過循環結構實現
7.數組變量自己(數組名)不能被賦值
8.要把一個數組的全部元素交給另外一個數組,必須採用 數組遍歷
三.實驗總結:
1.應將min=0改寫爲min=score[0];
2.在輸出值那再讓下標加1;
3.第二題要考慮插入的值爲最大值的狀況
4.第二題因要插入一個只因此要數組元素爲11