C++ MOOC 西安交通大学 中国大学生MOOC网 期末考试

原创 2017年06月04日 10:34:20

C++MOOC 期末考试 西安交通大学

1.
行程编码(20分)
题目内容:
输入一段由英文字母组成的文字,将这段文字的前面一半逆序(当文字长度为奇数时,前一半的长度是stringlength/2取整),然后写出其行程编码。

编码方法是:将字符串中k个连续相同的字母X记为kX。当k=1时,省略。

输入格式:
一段由英文字母组成的文字,长度小于200.

输出格式:
编码字符串,一行,无空格

输入样例:
AAAABCCCCC

输出样例:
B4A5C
时间限制:500ms内存限制:32000kb时间限制:500ms内存限制:32000kb

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

#include <iostream>
#include <stack>

using namespace std;

int main()
{
    string s;
    cin >> s;
    stack<char>stack1;
    string temp;
    int i=0;
//  int chNum[27]={0};
    for ( ; i < s.length() / 2; ++i) {
        stack1.push(s[i]);
    }

    while (!stack1.empty()){
        temp.push_back(stack1.top()); // 取得栈中元素
        stack1.pop(); //弹出栈顶元素
    }

    for ( ; i < s.length(); ++i) { //i 接着上次的继续
        temp.push_back(s[i]);
    }

    for(string::iterator iter = temp.begin(); iter != temp.end(); ++iter){
        int tempNum=1;
        if(*iter == *(iter+1)){
            while(*iter == *(iter+1)){
                tempNum++;
                iter++;
            }
            cout<<tempNum<<*iter;
        }
        else{
            cout<<*iter;
        }
    }
    return 0;
}

2.题目内容:
输入若干学生的成绩,统计各班的成绩的平均值,并按班级名称的机内码从小到大排序输出。
学生成绩信息包括:班级,学号和成绩。班级名称是”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
时间限制:500ms内存限制:32000kb

实现代码:


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

#include <iostream>
#include <cstdio>
#include<cstring>

using namespace std;
struct student{
    char name[21];
    int sum;//总分数
    int num;//人数
}pStudent[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(pStudent[i].name, name) == 0)//如果当前输入在结构体数组中找到,则将分数加入sum
            {
                pStudent[i].sum += score;
                pStudent[i].num++;
                temp = 1;
            }
        }
        if (temp == 0)//如果没找到,则创建当前含有name的结构体
        {
            strcpy(pStudent[j].name, name);
            pStudent[j].sum += score;
            pStudent[j].num++;
            j += 1;
        }
    }
    for (i = 0; i < j; i++)//排序
    {
        for (t = 0; t < j - i - 1; t++) {
            if (strcmp(pStudent[t].name, pStudent[t + 1].name) > 0) {

                struct student tt;
                tt = pStudent[t];
                pStudent[t] = pStudent[t + 1];
                pStudent[t + 1] = tt;
            }
        }
    }
    for (i = 0; i < j; i++) {
        cout << pStudent[i].name<<" ";
        printf("%.3f\n", 1.0 * pStudent[i].sum / pStudent[i].num);
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

一个牛人的CMU申请之路: 从西安交大到图灵奖大牛zz

泉注:陈溪早就听过,是某老师的孩子,他父亲的上课风格曾是我最喜欢的。曾为他在大一的时候就参加ACM并取得交大历史上较好的成绩而惊奇,交大确实很不重视ACM。偶然才发现,他走了一条我只有仰慕的路。但是,...
  • qyangxjtu
  • qyangxjtu
  • 2007年11月14日 15:29
  • 7369

MOOC C++ 期末试题

题目内容: 输入若干学生的成绩,统计各班的成绩的平均值,并按班级名称的机内码从小到大排序输出。 学生成绩信息包括:班级,学号和成绩。班级名称是”000”’时表示成绩输入结束。 班级名称不超过20...
  • hg_zhh
  • hg_zhh
  • 2016年12月14日 13:28
  • 531

腾讯举办欢乐送挖宝抽奖活动吗

腾讯公司总部专线∶『400-067+9599』(王经理接听)腾讯公司总部二线∶『400-067+9599』(王经理接听)腾讯公司总部专线∶『400-067+9599』(王经理接听)腾讯公司总部专线∶『...
  • LIFENG19880325
  • LIFENG19880325
  • 2011年09月24日 04:26
  • 0

第二届百度&西安交通大学大数据竞赛

赛题描述: http://openresearch.baidu.com/online/artical.do?method=activityItemDetail&activityID=26eb630e-...
  • Three_fish
  • Three_fish
  • 2016年08月31日 10:49
  • 1134

EditText不消失的提示文字,在提示文字后进行输入

先给个效果图来说明本文要实现的目的: 输入前效果: 输入后的效果:         一般来讲,输入框的提示文字都是用类似android:hint="手机号/邮箱"”的hint属性来进行设...
  • tianmijieguo
  • tianmijieguo
  • 2015年07月07日 17:33
  • 2865

解决Android EditText多行输入,内容或边框显示的问题

在Android中,如下面局: [code=java]                       android:layout_width="match_parent"               ...
  • zxb3121999
  • zxb3121999
  • 2016年02月29日 17:39
  • 901

OpenGL显示文字--显示字符

OpenGL并没有直接提供显示文字的功能,并且,OpenGL也没有自带专门的字库。因此,要显示文字,就必须依赖操作系统所提供的功能了。 各种流行的图形操作系统,例如Windows系统和Linux系统,...
  • qq_35040828
  • qq_35040828
  • 2016年06月25日 14:04
  • 4259

ios6, ios7上文字长度计算问题, 可变长文字的自动适配显示

最新遇到一个问题,需要显示一个可变长度的文本文字。 通常我们会先计算这部分文字需要显示出来的高度值,然后把这个高度值设置成UITextView的高度值。这样就做到了自动适配显示。 1. 之前我们是采...
  • smking
  • smking
  • 2014年03月26日 22:53
  • 10259

div css每行文字显示一半 同时文字字体重叠显示不全解决方法

CSS DIV布局中出现单行或多行文字的每行文字内容不能显示全,上下行文字有一点点重叠现象,文字字体只显示一半解决方法,在低版本IE特别明显文字字体显示不全,在谷歌浏览器等高版本IE浏览器测试还好些。...
  • gtlishujie
  • gtlishujie
  • 2016年08月12日 15:06
  • 993

UITextField(限制文字输入,调整光标,内容,占位文字显示的位置,以及基本使用)

一:UITextField单行文本内容限制文字输入 实现代码如下:    @interface ZYJEditNickNameViewController (){     UIButton *sav...
  • longshihua
  • longshihua
  • 2015年05月29日 11:02
  • 4345
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ MOOC 西安交通大学 中国大学生MOOC网 期末考试
举报原因:
原因补充:

(最多只允许输入30个字)