求大佬帮我把数组改为指针型,萌新求助!!!作业马上交了,还不会,跪求!!

 

#include<stdio.h>
#include<string.h>
#define M 3
#define N 2
void inputname(char name[M][20])
{
	int i;
	printf("请输入%d学生姓名:\n",M);
	for(i=0;i<M;i++)
		gets(name[i]);
}
void inputcourse(char course[N][20])
{
	int i;
	printf("请输入%d个课程的名字:\n",N);
	for(i=0;i<N;i++)
		gets(course[i]);
}
void inputscore(float score[M][N])
{
	int i,j;
	printf("请输入%d*%d实型数据:\n",M,N);
	for(i=0;i<M;i++)
	{
		for(j=0;j<N;j++)
			scanf("%f",&score[i][j]);
	}
}

void stuaverage(float score[M][N],float stuaver[M])
{
	int i,j;
	float s;
	for(i=0;i<M;i++)
	{
		s=0;
		for(j=0;j<N;j++)
			s=s+score[i][j];
		stuaver[i]=s/N;
	}

}

void couaverage(float score[M][N],float couaver[N])
{
	int i,j;
	float s;
	for(j=0;j<N;j++)
	{
		s=0;
		for(i=0;i<M;i++)
			s=s+score[i][j];
		couaver[j]=s/M;
	}
}

float max_value(float score[M][N],char name[M][20],char course[N][20],char maxinfo[2][20])
{
	int i,j,n,c;
	float max=0;
	for(i=0;i<M;i++)
	{
		for(j=0;j<N;j++)
			if(score[i][j]>max)
			{
				max=score[i][j];
				n=i;
				c=j;
			}
	}
	strcpy(maxinfo[0],name[n]);
	strcpy(maxinfo[1],course[c]);
	return max;

}

float  junfangcha(float stuaver[M])
{
	int i;
	float p,q,m;
	p=stuaver[0]*stuaver[0];
	q=stuaver[0];
	for(i=1;i<M;i++)
	{
		p=p+stuaver[i]*stuaver[i];
		q=q+stuaver[i];
	}
	m=p/M-(q/M)*(q/M);
	return m;
}
int main()
{
	int i,j;
	float score[M][N],stuaver[M],couaver[N];
	float jfc,max;
	char name[M][20],course[N][20],maxinfo[2][20];
	inputname(name);
	inputcourse(course);
	inputscore(score);

	stuaverage(score,stuaver);
	couaverage(score,couaver);
	max=max_value(score,name,course,maxinfo);
	jfc=junfangcha(stuaver);
	for(i=0;i<20;i++)
		printf(" ");
	for(i=0;i<N;i++)
		printf("%-20s",course[i]);
	printf("学生平均分\n");

	for(i=0;i<M;i++)
	{
		printf("%-20s",name[i]);
		for(j=0;j<N;j++)
			printf("%-20.1f",score[i][j]);
		printf("%-20.1f",stuaver[i]);
		printf("\n");
	}
	printf("%-20s","课程平均分");
	for(i=0;i<N;i++)
		printf("%-20.1f",couaver[i]);
	printf("\n\n最高分是%f,学生:%-20s,课程:%-20s\n",max,maxinfo[0],maxinfo[1]);
	printf("\n学生平均分方差为:%f\n",jfc);
	return 0;
}

 

数组改指针,解题思路不变,主要是语法,[]运算符的原理:是将地址移动[]运算符中的数量然后求指针,比如a[4]=*(a+4)

您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~

ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓

【电脑端】戳>>>  https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】  戳>>>  https://mall.csdn.net/item/52471?utm_source=1146287632