注册 登录
编程论坛 C++教室

看一下出什么问题了?

万致远醉帥 发布于 2020-04-07 12:45, 3082 次点击
只有本站会员才能查看附件,请 登录

源代码:
#include<iostream>
#include <algorithm>
#include <vector>
#include <memory>

using namespace std;
int main()
{
    const float i = 1.1;
    cout << "求最大数,作者:万致远 版本" << i << endl;
    int n, max, b;
    cout << "有几个数";
    cin >> n;
    if (n < 2)
    {
        cout << "请尊重程序员,谢谢" << endl;
        ;
        system("pause");
        system("cls");
        return 1;
    }
    vector<double> a(n);
    for (b = 0; b < n; b++)
    {
        cout << "请输入第" << b + 1 << "个数";
        cin >> a[b];
    }
    max = a[0];
    for (size_t b = 1; b < n; b++)
    {
        if (a[b] > max)
        {
            max = a[b];
        }
    }
    cout << "最大的数是" << max;
    return 0;
}
编译正确,运行也很好,到可执行程序就不行了
10 回复
#2
万致远醉帥2020-04-07 12:47
到最后突然闪退
#3
return_02020-04-07 13:25
回复 2楼 万致远醉帥
程序代码:

#include<iostream>
#include <algorithm>
using namespace std;
int main()
{
    const float i = 1.1;
    cout << "求最大数,作者:万致远 版本" << i << endl;
    int n, b=0;//这里的b要初始化
    cout << "有几个数";
    cin >> n;
    if (n < 2)
    {
        cout << "请尊重程序员,谢谢" << endl;
        system("pause");
        system("cls");
        return 0;
    }
    int a[10010];
    for (b = 0; b < n; b++)
    {
        cout << "请输入第" << b + 1 << "个数";
        cin >> a[b];
    }
    sort(a,a+n);
    cout << "最大的数是" << a[n];
    return 0;
}
#4
万致远醉帥2020-04-07 14:05
不是,编译可以过,可执行就有bug
#5
lin51616782020-04-07 14:39
回复 3楼 return_0
用排序实现找最大数是不可取的
太过于笨重 无意义的比较和交换太多
#6
xianfajushi2020-04-07 14:39
    system("pause");
    //return 0;
#7
雪影辰风2020-04-07 21:51
这里你要注意一下,在IDE编译运行的时候,IDE会自动的保留窗口,等按下任意键后才会退出,而可执行文件时不会有这个功能的,所以你只要在return 0;前面填上一个system("pause");就行了

[此贴子已经被作者于2020-4-14 15:09编辑过]

#8
万致远醉帥2020-04-08 09:13
谢谢
#9
万致远醉帥2020-04-08 09:23
只有本站会员才能查看附件,请 登录

这是改好的,后面加了个死循环。
#10
雪影辰风2020-04-08 10:21
回复 9楼 万致远醉帥
怎么说呢,我不建议用死循环做窗口保留……
#11
return_02020-04-09 15:08
说实在的,我喜欢用死递归而非死循环
1