作业1:
/*
使用数组实现10名学生的成绩录入,并输出这10名学生中成绩的
最高分
最低分
平均分
按照分数从大到小排序
思考:
如何实现从小到大排序?
如果学院有5个班,每个班30人,如何处理?
求所有成绩中的最高分是哪个班的,第几个学生,如何处理?
*/
/*
将作业1中的以下功能定义为独立的函数
1,对一个数组进行数据录入
void arrayinput(int * array,int count);
2,对一个数组进行数据输出
void arrayprint(int * array,int count);
3,对一个数组实现最大值的获取
int arrayMax(int * array,int count);
4,对一个数组实现最小值的获取
int arrayMin(int * array,int count);
5, 对一个数组进行排序
void arraySort(int array,int order);//0asc 1desc
*/
#include <stdio.h>
#define NUM 3
//对一个数组进行数据录入
void arrayinput(int * array,int count);
//对一个数组进行数据输出
void arrayprint(int * array,int count);
//对一个数组实现最大值的获取
int arrayMax(int * array,int count);
//对一个数组实现最小值的获取
int arrayMin(int * array,int count);
// 对一个数组进行排序
void arraySort(int *array,int order,int count);//0asc 1desc
int main(int argc, const char * argv[])
{
int score[NUM];
arrayinput(score,NUM);
arrayprint(score,NUM);
arrayMax(score,NUM);
arrayMin(score,NUM);
arraySort(score,0,NUM);
arrayprint(score,NUM);
arraySort(score,1,NUM);
arrayprint(score,NUM);
return 0;
}
//对一个数组进行数据录入
void arrayinput(int * array,int count)
{
for (int i = 0; i < count; i ++)
{
printf("请输入第%d名学生的成绩:",i+1);
scanf("%d",array++);
}
}
//对一个数组进行数据输出
void arrayprint(int * array,int count)
{
for (int i = 0; i < count; i ++)
{
printf("\n第%d名学生的成绩为:%d",i+1,*(array++));
}
}
//对一个数组实现最大值的获取
int arrayMax(int * array,int count)
{
int MAX = *array;
int idh = 1;
for (int i = 0; i < count; i ++)
{
if (*(array + i)>=MAX)
{
MAX = *(array + i);
idh = i + 1;
}
}
printf("\n\n最高分为第%d名学生为%d分\n",idh,MAX);
return MAX;
}
//对一个数组实现最小值的获取
int arrayMin(int * array,int count)
{
int MIN = *array;
int idl = 1;
for (int i = 0; i < count; i ++)
{
if (*(array + i)<=MIN)
{
MIN = *(array + i);
idl = i + 1;
}
}
printf("\n最低分为第%d名学生为%d分\n",idl,MIN);
return MIN;
}
// 对一个数组进行排序
void arraySort(int *array,int order,int count) //0asc 1desc
{
for (int i = 0; i < count - 1; i ++)
{
for (int j = i + 1; j < count; j ++)
{
if(order == 0)
{
if (*(array + i) <= *(array + j))
{
int t =*(array + i);
*(array + i) = *(array + j);
*(array + j) = t;
}
}
if (order == 1) {
if (*(array + i) >= *(array + j))
{
int t =*(array + i);
*(array + i) = *(array + j);
*(array + j) = t;
}
}
}
}
}