指针数组函数的综合
程序先亮一下
#include <stdio.h>
#include <stdlib.h>
void initScores(int *datas,int size)
{
int i;
for(i= 0;i<size;i++){//0 1 2 3 4 5 6 7 8 9
// 提示用户输入第多少个分数
printf("请输入第%d个学生的分数;\n",i+1);
// 获取用户的输入 scanf
scanf("%d",datas);
if(*datas>100||*datas<0){
printf("强制退出程序,请输入合法分数\n");
system("pause");
exit(-1);
}
datas++;
}
}
void printScores(int *datas,int size)
{
int i;
for(i= 0;i<size;i++){
printf("第%d个学生的成绩是;%d\n",i+1,*datas++);
}
}
int getMAX(int *datas,int size)
{ int i;
int max;
max = *datas;
for(i= 0;i<size;i++){
if(max<*datas){
max = *datas;
}
datas++;
}
return max;
}
int getMin(int *datas,int size)
{
int min;
min = *datas;
int i;
for(i = 0;i < size;i++){
if(min > *datas){
min = *datas;
}
datas++;
}
return min;
}
float getAverage(int *scores,int size)
{
int i;
int total = 0;
float averge;
for(i= 0;i<size;i++){
total = total+*scores;
scores++;
}
averge = (float)total/10;
return averge;
}
void printRet(int data1,int data2,float data3)
{
printf("最高分;%d\n最低分;%d\n平均分;%f\n",data1,data2,data3);
}
int main()
{
int scores[10];
int len;
int max;
int min;
float averge;
int *p ;
p = scores;
p = &scores[0];
len = sizeof(scores)/sizeof(scores[0]);
//1.初始化数组
initScores(scores,len); // 函数调用中,传参就是一个赋值的过程,实际参数的值给形式参数
// 1.5 打印数组
printScores(scores,len);
//2.找到最高分
max = getMAX(scores,len);
//3.找到最低分
min = getMin(scores,len);
//4.算出平均分
averge = getAverage(scores,len);
//5.输出结果
printRet(max,min,averge);
system("pause");
return 0;
}
以后有了更深的了解再改一下