5.6指针数组函数的综合
#include<stdio.h>
#include<stdlib.h>
void initScores(int* datas,int size)
{
int i;
for(i = 0;i < size;i++){
printf("请输入第%d个学生的分数",i+1);
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 < 5; i++){
if(max < *datas){
max = *datas;
}
datas++;
}
return max;
}
int getMin(int* datas, int size)
{
int i;
int min;
min = *datas;
for(i = 0;i < 5; i++){
if(min > *datas){
min = *datas;
}
datas++;
}
return min;
}
float getAverage(int* scores, int size)
{
int i;
int total = 0;
float average;
for(i = 0;i < size;i++){
total = total + *scores++;
}
average = (float)total/5;
return average;
}
void printRet(int data1,int data2,float data3)
{
printf("最高分:%d\n 最低分:%d\n 平均分:%f\n",data1,data2,data3);
}
int main()
{
int* datas;
int scores[5];
int len;
int max;
int min;
float average;
int* p;
p = scores;
p = &scores[0];
len = sizeof(scores)/sizeof(scores[0]);
initScores(&scores[0],len);
printScores(scores, len);
max = getMax(scores, len);
min = getMin(scores, len);
average = getAverage(scores, len);
printRet(max,min,average);
system("pause");
return 0;
}