编程萌新小baba 2021-05-29 13:38 采纳率: 0%
浏览 38
已结题

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

 

#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;
}
  • 写回答

2条回答 默认 最新

  • technologist_30 2021-05-30 17:37
    关注

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

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月7日

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退