编程(要按要求哦)

来源:百度知道 编辑:UC知道 时间:2024/06/03 02:24:44
编写一个能计算任意m行n列的二位数组中的最大值,并指出其所在的行列下标值的函数,利用该函数和动态内存分配方法,计算任意m个班、每班n个学生的某门课成绩的最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。

#include<stdio.h>

void main()
{ int class_n,size_n,flag=-1;
int i,j,**a;
printf("\n输入班级数,人数:");
scanf("%d,%d",&class_n,&size_n);

a=(int **)malloc(sizeof(int *)*class_n); //分配指针数组
for(i=0;i<class_n;i++)
a[i]=(int *)malloc(sizeof(int)*size_n); //分配实际数组空间

for(i=0;i<class_n;i++)
for(j=0;j<size_n;j++)
{ printf("输入%2d班%d号同学成绩:",i+1,j+1);
scanf("%d",&a[i][j]);
if(flag<a[i][j]) flag=a[i][j]; //记录最高分
}

printf("\n取得最高成绩%d的同学如下:\n",flag);
for(i=0;i<class_n;i++)
for(j=0;j<size_n;j++)
if(a[i][j]==flag)
printf("%2d班%d号同学\n",i+1,j+1);

for(i=0;i<class_n;i++)
free(a[i]);
free(a);
}