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

osc_16699020 发布于 01/11 15:47
阅读 261
收藏 0

#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;
}

加载中
0
tcxu
tcxu

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

0
ArchitectureMaster
ArchitectureMaster

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

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部