北京理工大学复试上机--2000

1、输入任意 4 个字符(如:abcd),并按反序输出(如:dcba)。

#include <iostream>
using namespace std;
int main() {
    string s;
    while(cin >> s) {
        for(int i = s.length() - 1; i >= 0; i--) {
            cout << s[i];
        }
        cout << endl;
    }
    return 0;
}

2、设 a、b、c 均是 0 到 9 之间的数字,abc、bcc 是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c 的值。

#include <iostream>
using namespace std;
int main() {
    for(int i = 0; i < 10; i++) {
        for(int j = 0; j < 10; j++) {
            for(int k = 0; k < 10; k++) {
                if((i * 100 + j * 10 + k + j * 100 + k * 10 + k) == 532)
                    cout << "a = " << i << "  b = " << j << "  c = " << k << endl;
            }
        }
    }
    return 0;
}

3、一个数如果恰好等于它的各因子(该数本身除外)子和,如: 6=3+2+1,则称其为“完数”;若因子之和大于该数,则称其为“盈数”。求出 2 到 60 之间所有“完数”和“盈数”,并以如下形式输出: E: e1 e2 e3 ......(ei 为完数) G: g1 g2 g3 ......(gi 为盈数) 。

#include <iostream>
using namespace std;
int main() {
    int e[60], g[60];
    int cnt1 = 0, cnt2 = 0;
    for(int i = 2; i <= 60; i++) {
        int sum = 0;
        for(int j = 1; j < i; j++) {
            if(i % j == 0) sum += j;
        }
        if(sum == i) e[cnt1++] = i;
        if(sum > i) g[cnt2++] = i;
    }
    cout << "E:";
    for(int i = 0; i < cnt1; i++) {
        cout << " " << e[i];
    }
    cout << "(ei 为完数)" << endl;
    cout << "g:";
    for(int i = 0; i < cnt2; i++) {
        cout << " " << g[i];
    }
    cout << "(gi 为盈数)" << endl;
    return 0;
}

4、从键盘输入 4 个学生的数据( 包括姓名、年龄和成绩),并存放在文件 file1上。从该文件读出这些数据,按成绩从高到低排序,并输出其中成绩次高者的所有数据(文件的读写操作)

#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;

struct student {
    int age, score;
    string name;
};

bool cmp(student s1, student s2) {
    return s1.score > s2.score;
}

int main() {
    ifstream cin("./file1.txt"); //这里最好是绝对路径,因为这个路径调了老半天
    student stu[100];
    int i = 0;
    while(cin >> stu[i].name >> stu[i].age >> stu[i].score) {
        i++;
    }
    sort(stu, stu + i, cmp);
    for(int j = 0; j < i; j++) {
        cout << stu[j].name << " " << stu[j].age << " " << stu[j].score <<endl;
    }
    cout << "成绩次高者信息:" << stu[1].name << " " << stu[1].age << " " << stu[1].score <<endl;
    return 0;
}

参考了CSDN博主北极星以南南

posted @ 2020-03-17 23:51  AlsoRan  阅读(255)  评论(0编辑  收藏  举报