关于自己的代码在三四出错,特希望探讨还有什么没被注意到的限制或逻辑错误

代码如下:

#include <iostream>
#include <string>
using namespace std;
int main(void)
{
    string a;
    unsigned long long int say[10000];
    string name[1000];
    unsigned long long int ssay[10000] = { 0 };
    string sname[1000];
    bool t = 0;
    int all, i = 0, max = 0;
    cin >> all;
    while (i < all) {//输入
        cin >> name[i];
        cin >> say[i];
        ++i;
    }
    for (i = 0; i < all; ++i) {
        for (int q = 0; q < all; ++q) {//数字排序
            if (say[max] < say[q])max = q;
        }
        ssay[i] = say[max];//对比大小将最大的数放入目标数组
        say[max] = 0;//将原来最大的数归0
        sname[i] = name[max];//将相应的名字放入目标数组
    }
    do {//开始名字排序
        t = 0;
        for (i = 0; i < all - 1; ++i) {
            if (ssay[i] == ssay[i + 1]) {
                if (sname[i]>sname[i + 1]) {
                    a = sname[i]; sname[i] = sname[i + 1]; sname[i + 1] = a; t = 1;
                }
            }
        }
    } while (t);
    for (i = 0; i < all; ++i) {
        cout << sname[i] << endl;//输出
    }
    return 0;
}

0 条评论

目前还没有评论...

信息

ID
1257
难度
6
分类
其他 | 排序 点击显示
标签
(无)
递交数
4110
已通过
1159
通过率
28%
被复制
3
上传者