按升序排列阵列
arranging an array in ascending order
我在学校的任务是创建一个按升序排列数组值的程序。它几乎就在那里,但每当我输入"44 55 66 22 33 11 77 99 88 66">或它输出的任何数字
-885993460,11,2,3,44,55,66,66,77,88,或开始时的负数
第一个数字到底怎么了?我缺了什么吗?
我对c++很陌生,我不太理解这里的问题。如果有什么建议我可以使用,请告诉他们。
int num [10] = {};
int z;
cout << "please enter 10 numbers you want to sort: ";
cin >> num[0]>>num[1]>>num[2]>>num[3]>>num[4]>>num[5]>>num[6]>>num[7]>>num[8]>>num[9];
for (int l = 0; l < 10;l++)
for (int a = 0; a < 10; a++) {
if (num[a] > num[a + 1]) {
z = num[a];
num[a] = num[a + 1];
num[a + 1] = z;
}
}
cout << "your number in ascending order is: ";
for (int a = 0; a < 10; a++) {
cout << num[a] << ",";
}
system("pause");
return 0;
}
这里有一个错误:
for (int a = 0; a < 10; a++) {
当a = 9
时,num[a + 1]
将超出范围。
线路应为:
for (int a = 0; a < 9; a++) {
以升序排列数字的更好、更简单的程序
#include<iostream>
using namespace std;
int main()
{
int n;
cout << "How many numbers you want to enter:n";
cin >> n;
int array[n];
//Introduce a loop which takes input from user multiple times
for (int i = 0; i < n; i++)
{
cout<<"Please enter number "<<i+1<<" : ";
cin >> array[i];
}
//Create a new array. It will store numbers in ascending order
int newArray[n];
for (int i = 0; i < n; i++)
{
//Initialize "a" to 0 in the first loop before the second loop starts.
int a = 0;
for (int j = 0; j < n; j++)
{
if (array[i] > array[j] || (array[i] == array[j] && i > j))
{
a = a + 1;
}
}
newArray[a] = array[i];
}
for (int i = 0; i < n; i++)
{
cout << newArray[i] << " ";
}
return 0;
}
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么不;名字在地图上是按顺序排列的吗
- OpenMP阵列性能较差
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 按对象的特定方法按升序排列的C++优先级队列
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- 当我的阵列太大时出现分段错误
- 位阵列上的快速AND运算
- 找到具有最多子串栅栏的字符串排列
- 阵列必须使用大括号封闭的初始器进行初始化
- 没有从阵列<float>到阵列<int>的可行转换
- 重新排列单线以形成闭合多边形?
- C++动态安全 2D 交错阵列
- 将平面阵列重塑为复杂的特征类型
- 如何使用英特尔 PIN 捕获阵列的所有负载?
- 为什么我能够为阵列分配比计算机实际拥有的内存更多的内存
- 库特<<恩德尔;不适用于打印 2D 阵列
- 以特征形式排列矩阵列
- C 按顺序排列一个指针阵列
- 显示阵列排列