勇子有
2021-05-16 09:10
采纳率: 92.3%
浏览 38

江湖救急!!!! 大佬 这个题咋搞

#include<stdio.h>
char xuehang[5][5]   , name[5][20],t1[1][20],t2[1][20];
int chengji[5][4], jun[5], cheng[5],t ,t3;
void  main()
{
    printf("请依次输入姓名,学号,分数");
    for(int  i = 0;  i  <  5  ;  i++)
    {
        scanf("%s%s%d",  &name[i] ,&xuehang[i]  ,&chengji[i]);
    }
    for(int  i = 0;  i  <  5  ;  i++)
    {
        t  =  0;
        for(int  j = 0;  i  <  4;  j++)
        {
            t  =  t +chengji[i][j];
        }
        cheng[i]  =  t;
    }
    for(int  i = 0;  i  <  5  ;  i++)
    {
        jun[i]  =  cheng[i]/4;
    }

    for(int  i = 0;  i  <  4  ;  i++)
    {
         for(int  j = 0;  i  <  5  ;  j++)
         {
             if(cheng[i]  <  cheng[j])
             {
                 t  =  cheng[i];
                cheng[i] =cheng[j];
                 cheng[j]  =  t;//)
                 t1[1] = name[i];
           name[i]=name[j];
                 name[j] =  t1[1];//)
                  t2[1]  =  xuehang[i];
               xuehang[i]=xuehang[j];
                 xuehang[j]  =  t2[1];//)
                 t3  =  jun[i];
                jun[i]=jun[j];
                 jun[j] =  t3;//)

             }
         }
    }

  for(int  i = 0;  i  <  5  ;  i++)
  {
      printf("%s %s %d %d" ,name[i],xuehang[i],jun[i],cheng[i]);
  }
}
//这是一个输入姓名 学号 四门课的成绩,求均值,总分 ,并以成绩的高低输出姓名 学号 总分 均值的程序;
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • qfl_sdu 2021-05-16 11:12
    已采纳

    代码如下,运行通过,如有帮助,请采纳一下,谢谢。

    #include <stdio.h>
    #include <algorithm>
    using namespace std;
    char xuehang[5][5], name[5][20],t1[1][20],t2[1][20];
    int chengji[5][4], jun[5], cheng[5],t ,t3;
    void  main()
    {
    	printf("请依次输入姓名,学号,分数\n");
    	for(int  i = 0;  i  < 5  ;  i++)
    	{
    		scanf("%s %s %d %d %d %d", &name[i] ,&xuehang[i] ,&chengji[i][0],&chengji[i][1],&chengji[i][2],&chengji[i][3]);
    	}
    
    	//计算均值
    	for (int i = 0 ; i < 5; i++)
    	{
    		int sum = 0;
    		for (int j = 0; j < 4;j++)
    		{
    			sum += chengji[i][j];
    		}
    		cheng[i] = sum;  //所有成绩的和
    		jun[i] = sum /4; //平均成绩
    	}
    
    	int index1[5] = {0};
    	int index2[5] = {0};
    	for (int i = 0; i < 5; i++)
    	{
    		index1[i] = i;
    		index2[i] = i;
    	}
    	//以总成绩排序输出
    	sort(index1,index1+5,[&](const int& a, const int& b) {
    		return (cheng[a] > cheng[b]);
    	});
    	printf("按总成绩从高到底排序:学号,姓名,总成绩:\n");
    	for (int i = 0; i < 5; i++)
    	{
    		int ss = index1[i];
    		printf("%s,%s,%d\n",xuehang[ss],name[ss],cheng[ss]);
    	}
    	
    	//按平均分排序输出
    	sort(index2,index2+5,[&](const int& a, const int& b) {
    		return (jun[a] > jun[b]);
    	});
    	printf("按平均成绩从高到底排序:学号,姓名,总成绩:\n");
    	for (int i = 0; i < 5; i++)
    	{
    		int ss = index2[i];
    		printf("%s,%s,%d\n",xuehang[ss],name[ss],jun[ss]);
    	}
    
    
    	getchar();
    	return ;
    	
    }
    
    
    打赏 评论

相关推荐 更多相似问题