c语言高手帮我啊(在线等)

来源:百度知道 编辑:UC知道 时间:2024/08/28 19:23:20
输入三个班人数,求其中最高分。
我这个程序开辟内存和赋值该咋弄啊
#include "stdio.h"
#include"stdlib.h"
void fun(int *p,int a,int b)
{int k,i,j,m=1,n=1;
k=*p;
printf("%d",k);
for(i=0;i<=a-1;i++)
{for(j=0;j<=b-1;j++)
{if(k<*(p+i*a+j))
{k=*(p+i*b+j);
m=i+1;
n=j+1;
}
}
}
printf("最高分为第%d班第%d名同学,成绩为:%d\n",m,n,k);

}
void main()
{
int i,j,m,n;
int **a;
printf("输入班级数\n");
scanf("%d",&m);
printf("输入各班人数\n");
scanf("%d",&n);
a=(int**)malloc(m*sizeof(int*));
for(i=0;i<m;j++)
a[j]=(int*)malloc(n*sizeof(int*));
for(i=0;i<=m-1;i++)
{for(j=0;j<=n-1;j++)
{printf("输入第%d班第%d名同学成绩\n",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
fun(a,m,n);
}

if(k<*(p+i*a+j))
{k=*(p+i*b+j);

二维指针不是数组,不能像你这样用,想知道更详细的Hi我
#include "stdio.h"
#include"stdlib.h"
void fun(int **p,int a,int b)
{
int k,i,j,m=1,n=1;
k=**p;
printf("%d",k);
for(i=0;i<=a-1;i++)
for(j=0;j<=b-1;j++)
{
if(k<p[i][j])
{
k=p[i][j];
m=i+1;
n=j+1;
}
}
printf("最高分为第%d班第%d名同学,成绩为:%d\n",m,n,k);

}
void main()
{
int i,j,m,n;
int **a;
printf("输入班级数\n");
scanf("%d",&m);
printf("输入各班人数\n");
scanf("%d",&n);
a=(int**)malloc(m*sizeof(int*));
for(i=0;i<m;i++)
a[i]=(int*)malloc(n*sizeof(int));
for(i=0;i<=m-1;i++)
{for(j=0;j<=n-1;j++)
{printf("输入第%d班第%d名同学成绩\n",i+1,j+1);
scanf("%d",&a[i][j]);
}
}