【发布时间】:2021-11-24 02:28:58
【问题描述】:
此代码是关于获取用户输入的数组大小、数组值,并且此代码使用冒泡排序对数组进行排序。 这段代码有什么问题?我遇到了分段错误。
#include<iostream>
using namespace std;
int main(){
int arr[40];
int n;
cout<<"Enter the size of array: \n";
cin>>n;
for(int i=0;i<n;i++){
cin>>arr[i];
}
for(int i=0;i<n;i++){
cout<<"Entered value for array before sorting is "<<arr[i]<<"\t";
}
int counter = 1;
while(counter < n){
for (int i=0;counter<n;i++){
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
counter++;
}
for(int i=0;i<n;i++){
cout<<"sorted array is "<<arr[i]<<"\t";
}
}
【问题讨论】:
-
一件事立刻引起了我的注意——你的
arr的大小固定为40,但你输入n并将其视为大小。如果 n>=40,您将溢出数组。 -
是的,我正在设置限制
标签: c++ sorting bubble-sort