c++小白对于冒泡排序出现问题的提问

发布于 2022-08-17 22:20:25 字数 1484 浏览 20 评论 3

#include<iostream>
using namespace std;
int main(){
    double a[100];
    int i=0,j=0;
    int N,x;
    const int P='999';//想要实现特定结束符,不去输入数字个数作为结束依据。
    cout<<"请输入数字"<<endl;
    cin>>x;
    while(x!=P){
        a[i]=x;
        i++;
        }
        N=i;    //输入部分有问题
    for(i=0;i<N-1;i++){
        for(j=0;j<N-1-i;j++){
            int tmp;
            if(a[j]>a[j+1]){
                tmp=a[j];
                a[j]=a[j+1];
                a[j+1]=tmp;
            }
        }
    }
    for(i=0;i<N;i++){
        cout<<a[i]<<"  ";
    }
    cout<<endl;
    return 0;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

小ぇ时光︴ 2022-08-19 19:47:17

999是字符串,在初始化P的时候就错了

再可℃爱ぅ一点好了 2022-08-19 19:24:45

上面说的是对的,很明显你的变量p是一个int整数型,而你赋的初始值是字符',而且也不对,你给的字符越界了。把P变量的赋值类型改为char*或char数组 即可。

魄砕の薆 2022-08-19 14:13:15

定义数组 a 的元素是双精度数据类型,其中的元素不可能是特定结束符(字符型), 只能按双精度来解析。

变量 x 应当定义成 double 型,因为它要接收这种类型的数据,并且将这个数据,存入你定义的 double 型数组 a 中。 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文