C++编程题求大神指教,谢谢!对于如何将相同班级的学生挑选出来放在一起,我不太清楚用程序语言怎么表达。

输入若干学生的成绩,统计各班的成绩的平均值,并按班级名称的机内码从小到大排序输出。
学生成绩信息包括:班级,学号和成绩。班级名称是"000"'时表示成绩输入结束。
班级名称不超过20字符,学号不超过10个字符,成绩为整数,平均成绩为双精度实数,保留三位小数。班级数不超过10个,总人数不超过100个。
输入格式:
若干行,每行信息包括班级,学号和成绩,用空格隔开,
最后一行为:000 000 000
输出格式:
若干行,每行信息包括:班级和平均成绩,中间用一个空格隔开。行数由输入中的班级数确定。
输入样例:
航天 001 80
信计 001 90
航天 002 70
航天 003 80
信计 002 91
000 000 000
输出样例:
航天 76.667
信计 90.500

//
// Created by Cooper on 04/06/2017.
//

#include <iostream>
#include <stack>
#include <cstdio>

using namespace std;

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
struct student{
   char name[21];
   int sum;//总分数
   int ss;//人数
}S2[11];
int main()
{
   char name[21], num[11];
   int score;
   int j = 0, t = 0, i, temp = 0;
   while (1) {
      cin >> name >> num >> score;
      temp = 0;//是否找到的标记
      if (strcmp(name, "000") == 0)
         break;
      for (i = 0; i < j; i++) {
         if (strcmp(S2[i].name, name) == 0)//如果当前输入在结构体数组中找到,则将分数加入sum
         {
            S2[i].sum += score;
            S2[i].ss++;
            temp = 1;
         }
      }
      if (temp == 0)//如果没找到,则创建当前含有name的结构体
      {
         strcpy(S2[j].name, name);
         S2[j].sum += score;
         S2[j].ss++;
         j += 1;
      }
   }
   for (i = 0; i < j; i++)//排序
   {
      for (t = 0; t < j - i - 1; t++) {
         if (strcmp(S2[t].name, S2[t + 1].name) > 0) {

            struct student tt;
            tt = S2[t];
            S2[t] = S2[t + 1];
            S2[t + 1] = tt;
         }
      }
   }
   for (i = 0; i < j; i++) {
      cout << S2[i].name<<" ";
      printf("%.3f\n", 1.0 * S2[i].sum / S2[i].ss);
   }
   return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-01-02
提高悬赏我给答案然后你可以选择采纳ok?追问

我提高了。

C++编程题求大神指教,谢谢!对于如何将相同班级的学生挑选出来放在一起...
name) == 0)\/\/如果当前输入在结构体数组中找到,则将分数加入sum { S2[i].sum += score; S2[i].ss++; temp = 1; } } if (temp == 0)\/\/如果没找到,则创建当前含有name的结构体 { strcpy(S2[

求c++语言解决实际问题~~~很急的
1. 学生基本信息及成绩所选科目成绩的录入。 2. 基本信息的查询(分系、班级;分科目)与修改。 3. 对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率); 4. 对所开课程的成绩分析(求其平均成绩,最高分和最低分); 5. 对学生考试成绩进行排名(单科按系别或班级进行排名,对每一个班级,同一学期...

C++。编程题,题目如下。
stdafx.h文件没有列出来,在VC6.0下新建一个工程就有该内容*\/新建一个VC6.0 控制台应用程序->将代码复制到对应的文件上->编译->运行即可 追问 运行后怎么出现错误???c:\\program files\\microsoft visual studio\\vc98\\include\\eh.h(32) : fatal error C1189: #error : "eh.h is only for C++!" 追答 ...

我是一个初二的学生,想学编程,应该怎么学,我买了一本C++的书。我先学...
1、要学习基础的,了解计算机如何运作,等到你上大学的时候就学不懂了 2、语言选择Pascal\/C\/Java都可以,个人觉得一上来学习C++不是很好 3、重点不要放在那些语言的难点和不建议的用法 4、一定要让自己学会算法和数据结构 5、锻炼自己能够一次把程序写对,而不是总调试 6、有机会参加竞赛可以得些奖,...

想问问各位编程高手最开始的时候是怎么下手的,也可以说是怎么从什么都...
第一个C语言程序,就是那个经典的HelloWorld,我调了几个星期,上机机会非常少,也没有书告诉我开发环境(TC2.0)需要设置,而且开始我都不知道有编译器,我甚至自作聪明把写好的程序扩展名从.c改成.exe,结果可想而知。 大一学完了C、X86的汇编、数据结构、C++。由于精力都花在自学上了,大一下四门课挂了彩,三类...

C语言,以下如何理解,谢谢!
下载,注意,在下载时要把锁匙盘一起下回来,否则不能进入考试环境。 7、 教学光盘:如果能买到C语言的教学光盘,那当然更好,这样可以更直观地学习C语言了。 下面从微观上针对C语言的几个重点和难点,逐个谈谈具体的自学方法。 二 如何学习C语言的运算符和运算顺序 C语言的运算功能十分丰富,运算种类远多于其它程序设计...

我想学习编程,但不知道从哪入手,基础也为零,求大神给点建议,推荐基本书 ...
回答:别人写的一篇关于初学电脑的心得文章,可以给你一些参考。 零基础如何学习编程 心得笔记 自学编程2年来,加过n多群,泡过n多论坛,接触过心怀激情的编程新人,遇到过沉着冷静的技术大牛……编程,吸引了一批又一批的热血青年,或许是为了理想,或许是心中的爱好,不断有新人的加入,也不断有人从编程中退出...

...因此听网上介绍要学习编程语言,c语言c++,ja
“我是高一学生,对设计软件很有兴趣,因此听网上介绍要学习编程语言,c语言c++,java等等,我想知道学习这些语言是否像学习英语单词,语法一样是为了软件设计做铺垫。我应该如何学好这些语言,或者说是全都学,还是在某一语言上精通?”我是计算机软件类的学生,在校这几年,通过我的切身感受就是,学好...

《C程序设计》学完了往后想学C++推荐几本书
第一次接触的是C,没什么好说的,我C学的不好,因为我大二的时候经商去了,而且我觉得C能做的,我用BASIC都能做到,为什么要学C?当然那个时候我成绩真是北大的BBS...然后接触到的就是C++,教材的钱能的《C++程序设计》,这本书其实还是很不错的,不过很多看了两本名著的朋友都对这本书嗤之以鼻,也许是我天生...

我是个菜鸟,求学习方法!
我也去答题访问个人页 关注 展开全部 经验一: 1、不妨给自己定一些时间限制。连续长时间的学习很容易使自己产生厌烦情绪,这时可以把功课分成若干个部分,把每一部分限定时间,例如一小时内完成这份练习、八点以前做完那份测试等等,这样不仅有助于提高效率,还不会产生疲劳感。如果可能的话,逐步缩短所用的时间,不久...

相似回答