黑马程序员技术交流社区
标题: 多文件数组练习 [打印本页]
作者: wx_byrDDXsc 时间: 2016-3-25 20:48
标题: 多文件数组练习
/*
写1个程序,接收输入班级的人数, 然后依次的输入每1个学员的成绩.
将学员的成绩存储在数组之中.
输入完毕之后, 显示总成绩和平均成绩.
然后再去掉1个最高分和1个最低分, 再计算平均成绩.
分析: 1.循环接收用户输入,存入数组.
2.计算数组的累加和和平均值.
3.找出最大值和最小值,将剩下的求平均值.
多文件
*/
main.c
#include <stdio.h>
#include "jiSuanScore.h"
int main()
{
//1.循环接收用户输入,存入数组.
int len = 0;
len = getLen(len);
double arr[len];
getArr(arr,len);
//2.计算数组的累加和和平均值.
double sum = getSum(arr, len);
daYinSum(sum);
daYinAver(sum, len);
//3.找出最大值和最小值,将剩下的求平均值.
getAndDaYinAver_2(sum, getMax(arr, len), getMin(arr, len), len);
}
jiSuanScore.c
#include "jiSuanScore.h"
/**
* 接收用户输入的长度
*
* @param len 长度
*
* @return 数组的长度
*/
int getLen(int len)
{
printf("请输入人数:");
scanf("%d",&len);
return len;
}
/**
* 接收成绩存入数组
*
* @param arr 数组
* @param len 长度
*
* @return 成绩数组
*/
void getArr(double arr[],int len)
{
for (int i = 0; i < len; i++)
{
printf("请输入第%d个成绩:",i+1);
scanf("%lf",&arr);
}
}
/**
* 求累加和
*
* @param arr 成绩数组
* @param len 长度
*
* @return 累加和
*/
double getSum(double arr[],int len)
{
double sum = 0;
for (int i = 0; i < len; i++)
{
sum = sum + arr;
}
return sum;
}
/**
* 求最大值
*
* @param arr 数组
* @param len 长度
*
* @return 最大值
*/
double getMax(double arr[],int len)
{
double max = INT32_MIN;
for (int i = 0; i < len; i++)
{
if (max < arr)
{
max = arr;
}
}
return max;
}
/**
* 求最小值
*
* @param arr 成绩数组
* @param len 长度
*
* @return 最小值
*/
double getMin(double arr[],int len)
{
double min = INT32_MAX;
for (int i = 0; i < len; i++)
{
if (min > arr)
{
min = arr;
}
}
return min;
}
/**
* 求剩下的平均值并且打印
*
* @param sum 累加和
* @param max 最大值
* @param min 最小值
* @param len 长度
*/
void getAndDaYinAver_2(double sum,double max,double min,int len)
{
double sum_2 = sum - max - min;
double aver_2 = sum_2 / (len - 2);
printf("去掉最大值和最小值之后的平均值是:%.2lf\n",aver_2);
}
//打印累加和
void daYinSum(double sum)
{
printf("累加和是:%.2lf\n",sum);
}
//打印平均值
void daYinAver(double sum,int len)
{
printf("平均值是:%.2lf\n",sum/len);
}
jiSuanScore.h
#ifndef jiSuanScore_h
#define jiSuanScore_h
#include <stdio.h>
/**
* 接收用户输入的长度
*
* @param len 长度
*
* @return 数组的长度
*/
int getLen(int len);
/**
* 接收成绩存入数组
*
* @param arr 数组
* @param len 长度
*
* @return 成绩数组
*/
void getArr(double arr[],int len);
/**
* 求累加和
*
* @param arr 成绩数组
* @param len 长度
*
* @return 累加和
*/
double getSum(double arr[],int len);
/**
* 求最大值
*
* @param arr 数组
* @param len 长度
*
* @return 最大值
*/
double getMax(double arr[],int len);
/**
* 求最小值
*
* @param arr 成绩数组
* @param len 长度
*
* @return 最小值
*/
double getMin(double arr[],int len);
/**
* 求剩下的平均值并且打印
*
* @param sum 累加和
* @param max 最大值
* @param min 最小值
* @param len 长度
*/
void getAndDaYinAver_2(double sum,double max,double min,int len);
void daYinSum(double sum);
void daYinAver(double sum,int len);
#endif /* jiSuanScore_h */
作者: 15527933998 时间: 2016-3-25 22:26




作者: iOSyinlixian 时间: 2016-3-26 00:09
{:3_55:}{:3_55:}{:3_55:}
作者: 最爱舒儿 时间: 2016-3-27 00:20
好长
作者: 赵国政 时间: 2016-3-27 00:33
好长啊!
作者: wx_byrDDXsc 时间: 2016-3-27 21:16



作者: Zhangqi27 时间: 2016-3-28 21:23
楼上的楼上你好
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |