我们先看例题:
从键盘输入某学生的四科成绩,编写程序实现输出四科的总分,平均分,最高分以及最低分。
思路分析
我们把学生成绩存放到一维数组里,成绩的总分就是数组的全部数值和,平均分用成绩总分除以4即可,成绩最高分就是数组最大值,成绩最低分就是数组最小值。
案例成绩全部初始化为整数,即int数据类型。
1.从键盘输入成绩存放到一维数组里,也就是一维数组数值初始化。
代码如下:
#include <stdio.h>
#define N 4//定义N的值为4,也就是4门科目,下面的代码块里N都表示4
void main(){
int arr[N];//初始化一个一维数组,用来存放成绩
int i,j,d;//定义变量
int sum=0;//初始化总分为0
int max=0;//初始化成绩最高分为0
int min=0;//初始化成绩最低分为0
printf("请输入学科的成绩:\n");
for(i=0;i<N;i++){
scanf("%d",&arr[i]);
}//从键盘输入成绩
2.求成绩总分,也就是求数组全部数值的和
代码如下:
for(i=0;i<N;i++){
sum+=arr[i];
}//总分
3,求成绩最高分和成绩最低分,也就是求数组数值的最大值和最小值。
求成绩的平均分,成绩总分除以4即可。
代码如下:
printf("成绩从小到大排序为");//运用冒泡排序的知识点,使成绩按从小到大排序
printf("\n");
for(i=0;i<N-1;i++){
for(j=0;j<N-1-i;j++){
if(arr[j]>arr[j+1]){
d=arr[j];
arr[j]=arr[j+1];
arr[j+1]=d;
}
}
}
for(j=0;j<N;j++){
printf("%d\t",arr[j]);//打印输出从小到大排序的成绩
}
for(i=0;i<N;i++){
sum+=arr[i];
}//总分
j=sum/N;//平均分
max=arr[N-1];//成绩最高分
min=arr[0];//成绩最低分
案例全部代码如下
#include <stdio.h>
#define N 4 //定义N的值为4,也就是4门科目,下面的代码块里N都表示4
void main(){
int arr[N];//初始化一个一维数组,用来存放成绩
int i,j,d;//定义变量
int sum=0;//初始化成绩总分为sum=0
int max=0;//初始化成绩最高分为max=0
int min=0;//初始化成绩最低分为min=0
printf("请输入学科的成绩:\n");
for(i=0;i<N;i++){
scanf("%d",&arr[i]);
}//从键盘输入成绩
printf("成绩从小到大排序为");//运用冒泡排序的知识点,使成绩按从小到大排序
printf("\n");
for(i=0;i<N-1;i++){
for(j=0;j<N-1-i;j++){
if(arr[j]>arr[j+1]){
d=arr[j];
arr[j]=arr[j+1];
arr[j+1]=d;
}
}
}
for(j=0;j<N;j++){
printf("%d\t",arr[j]);//打印输出从小到大排序的成绩
}
for(i=0;i<N;i++){
sum+=arr[i];
}//总分
j=sum/N;//平均分
max=arr[N-1];//成绩最高分
min=arr[0];//成绩最低分
printf("\n");
printf(“成绩总分为%d\n”,sum);
printf("成绩最高分为%d\n",max);
printf("成绩最低分为%d\n",min);
printf("成绩平均分为%d\n",j);
}
代码运行结果如下
补充:案例代码使用了冒泡排序的知识点,如果对冒泡排序知识点有不太了解的朋友可以点击作者关于冒泡排序知识点讲解的博客(C语言实现冒泡排序)进行知识补充