我需要一个程序来排序整数数组而不使用条件语句。数字在0到100的范围内,不要重复。无条件排序数组
#include <iostream>
using namespace std;
int main() {
int arr[] = { 34, 12, 24, 65, 63, 22 };
int arraySize = (sizeof(arr)/sizeof(*arr));
unsigned char buf[101] = { 0 };
for (int k = 0; k < arraySize; k++) {
buf[arr[k]]++;
}
unsigned char i = 0;
for (int k = 0; k <= 100; k++) {
arr[i] = k;
i += buf[k];
}
for (int a : arr) {
cout << a << endl;
}
system("pause");
return 0;
}
该程序的作品,但我得到的错误命令提示符的成交后:
运行时检查失败#2 - 围绕堆栈变量“改编”已损坏。
有没有办法解决它?
你正在使用哪种编译器? “作品” – Tejendra
可能有点强大。 –
你正在写出某处的界限。使用调试器并逐行浏览代码,同时关注变量及其值。 –