学生成绩管理的指针数组方式实现:
#include <stdio.h>
#include <stdlib.h>
void intArry(int *scores,int cnt)
{
int i;
for(i = 0;i<cnt;i++)
{
printf("请输入第%d个学生的成绩:\n",i+1);
scanf("%d",scores);
if(*scores>100||*scores<0)
{
printf("输入错误,退出程序!\n");
system("pause");
exit(-1);
}
scores++;
}
}
void printfArry(int *scores,int cnt)
{
int i;
for(i = 0;i<cnt;i++)
{
printf("第%d个学生的成绩为:%d\n",i+1,*scores++);
}
}
int getMax(int *scores,int cnt)
{
int i;
int max = *scores;
for(i=0;i<cnt;i++)
{
if(max<*scores)
{
max = *scores;
}
*scores++;
}
return max;
}
int getMin(int *scores,int cnt)
{
int i;
int min = *scores;
for(i=0;i<cnt;i++)
{
if(min>*scores)
{
min = *scores;
}
*scores++;
}
return min;
}
float getAverage(int *scores,int cnt)
{
int i;
int sum = 0;
float avg;
for(i=0;i<cnt;i++)
{
sum = sum + *scores;
*scores++;
}
avg = sum / (float)cnt;
return avg;
}
void printfRet(int max,int min,float avg)
{
printf("最大成绩为:%d\n",max);
printf("最小成绩为:%d\n",min);
printf("平均成绩为:%.2f\n",avg);
}
int main()
{
//1.定义
int scores[10];
int len;
int max;
int min;
float avg;
len = sizeof(scores)/sizeof(scores[0]);
//2.初始化数组
intArry(scores,len);
//3.输出数组
printfArry(scores,len);
//4.计算最高分和最低分
max = getMax(scores,len);
min = getMin(scores,len);
//5.计算平均分
avg = getAverage(scores,len);
//6.输出结果
printfRet(max,min,avg);
system("pause");
return 0;
}
结果:

880





