Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;排序问题_C++ - Fatal编程技术网

C++ C++;排序问题

C++ C++;排序问题,c++,C++,我想创建一个排序系统,它会得到一些数字,然后按DESC排序 如果我按顺序输入1,2,3,4,5,6,7,8,9,10,该代码工作正常。。 但是如果输入这些数字,无序的话,它就会被分解 我的密码是:: #include <iostream.h> main () { int a[10], max, temp; for (int i=0; i<10; i++) { cout << "Enter number " << i+1 << ":

我想创建一个排序系统,它会得到一些数字,然后按DESC排序

如果我按顺序输入
1,2,3,4,5,6,7,8,9,10
,该代码工作正常。。 但是如果输入这些数字,无序的话,它就会被分解

我的密码是::

#include <iostream.h>
main () {
 int a[10], max, temp;
 for (int i=0; i<10; i++) {
    cout << "Enter number " << i+1 << ": ";
    cin >> a[i];
 }

 for (int j=0; j<10; j++) {
  for (int x=0; x<=j; x++) {
    if (a[j] > a[j+1]) {
     temp = a[j];
     a[j] = a[j+1];
     a[j+1] = temp;
    }
  }
 }

 cout << "Sort [DESC]: \n";
 for (int w=9; w>=0; w--) {
    cout << w << ". " << a[w] << "\n";
 }
 //cout << "Max: " << max;
}
#包括
主要(){
内部温度[10],最大温度;

对于(inti=0;i您正在访问
a[10]
(通过
a[j+1]
),这肯定是不正确的。简单的冒泡排序通常如下所示,例如:

for(int i = NUMBER_OF_ELEMENTS - 1; i > 0; --i)
for(int t = 0; t < i; ++t)
{
    if(item [t] greater than [t+1])
    {
        swap item [t] with [t+1]
    }
}
for(int i=元素的个数-1;i>0;--i)
对于(int t=0;t
您正在访问
a[10]
(通过
a[j+1]
),这肯定是不正确的。简单的冒泡排序通常如下所示,例如:

for(int i = NUMBER_OF_ELEMENTS - 1; i > 0; --i)
for(int t = 0; t < i; ++t)
{
    if(item [t] greater than [t+1])
    {
        swap item [t] with [t+1]
    }
}
for(int i=元素的个数-1;i>0;--i)
对于(int t=0;t

如果你使用C++,你可以使用STL代替数组,然后使用STL算法

< P>如果你使用C++,你可以使用STL代替数组,然后使用STL算法

我想创建一个排序系统

已作为标准库的一部分为您完成:

#包括
#包括
#包括
无效打印编号(int*myArray)
{
std::copy(myArray,myArray+10,std::ostream\u迭代器(std::cout,“,”);
标准::cout
我想创建一个排序系统

已作为标准库的一部分为您完成:

#包括
#包括
#包括
无效打印编号(int*myArray)
{
std::copy(myArray,myArray+10,std::ostream\u迭代器(std::cout,“,”);

std::cout从这里看起来像一个。它是
intmain()“隐式int”在C++中不再有效。这看起来很像作业。如果是这样,我们应该把它标记为……使用<代码> <代码>。C++中没有“<代码> <代码>,而且永远不会是。我是唯一一个觉得这个算法只适用于预期输出的人吗?看起来像是从这里来的。它是代码> int()。“隐式int”在C++中不再有效。这看起来是非常的家庭作业。如果是这样,我们应该使用它。使用<代码> <代码>。C++中没有“<代码> <代码>,而且从来没有。我是唯一一个发现这个算法只对预期输出工作的人吗?<代码> STD::排序< /COD>是好的建议。但是,给出了这个建议。在数组是堆栈分配的情况下,这很好——没有理由在这里使用向量。
std::sort
是一个很好的建议。但是,如果数组是堆栈分配的,那么这很好——没有理由在这里使用向量。不明白为什么要比较
>0
,通常是将左元素与正确的元素,或者它将是strcmp样式的比较函数,在这种情况下,您需要
!=0
而不是
>0
@Billy:改变了这一点,它只是一个示例。对于整数,它将是
item[t]>item[t+1]
,对于字符串,它将是
strcmp(item[t],item[t+1])>0
,等等。我不明白为什么
>0
是你的比较——通常是比较左元素和右元素,或者是strcmp风格的比较函数,在这种情况下,你需要
!=0
而不是
>0
@Billy:改变了这一点,这只是一个例子。对于整数,它将d是
item[t]>item[t+1]
,对于字符串,它将是
strcmp(item[t],item[t+1])>0
,依此类推。