用函数实现模块化
作业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(" 第%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(" 最高分为第%d名学生为%d分 ",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(" 最低分为第%d名学生为%d分 ",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;
}
}
}
}
}
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了