c++小白对于冒泡排序出现问题的提问
#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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
999是字符串,在初始化P的时候就错了
上面说的是对的,很明显你的变量p是一个int整数型,而你赋的初始值是字符',而且也不对,你给的字符越界了。把P变量的赋值类型改为char*或char数组 即可。
定义数组 a 的元素是双精度数据类型,其中的元素不可能是特定结束符(字符型), 只能按双精度来解析。
变量 x 应当定义成 double 型,因为它要接收这种类型的数据,并且将这个数据,存入你定义的 double 型数组 a 中。