C++ 编码问题

C++ 编码问题,c++,C++,可能重复: inta[5]={1,5,3,2,4}; 对于(inti=0;i首先,要学会正确缩进。这并不难。其次,它看起来像是你在做一个排序函数 问题是,两个for循环都使用变量j。不要。将一个变量更改为k,或另一个变量。我假设您试图用j+1引用第二个j。这只会将1添加到j 请问,你有编码经验吗 您应该指定代码的问题所在、您期望的内容以及您得到的内容。您可以改为使用,效果非常好 int A[5]={1,5,3,2,4}; vector<int> vec(A, A+5); sort

可能重复:

inta[5]={1,5,3,2,4};

对于(inti=0;i首先,要学会正确缩进。这并不难。其次,它看起来像是你在做一个排序函数

问题是,两个for循环都使用变量j。不要。将一个变量更改为k,或另一个变量。我假设您试图用j+1引用第二个j。这只会将1添加到j

请问,你有编码经验吗

您应该指定代码的问题所在、您期望的内容以及您得到的内容。

您可以改为使用,效果非常好

int A[5]={1,5,3,2,4};
vector<int> vec(A, A+5);

sort(vec.begin(), vec.end()); 
inta[5]={1,5,3,2,4};
向量向量向量(A,A+5);
排序(vec.begin(),vec.end());

看起来您正在尝试冒泡排序,为什么不尝试呢。我相信您可以自己完成它。

您需要将内部循环限制为您的程序将不会生成该输出。当j==4时,它将在[j+1]处消亡。在最后一个循环中,您需要为其编写代码(int I=0;I<5;I++)。其次,您的逻辑没有多大意义。如果您要对数组进行排序,请执行以下代码:

for(int i = 0; i < 5; i++){
    for(int j = i + 1; j < 5; j++){
        if(A[j] < A[i])
        {
            int t = A[j];
            A[j] = A[i];
            A[i] = t;
        } 
    }
}
for(int i=0;i<5;i++){
对于(int j=i+1;j<5;j++){
if(A[j]
我已重新格式化,使您的代码更具可读性,我希望我所做的一切正常?这不可能是完整的代码,因为在函数体之外不能有非声明语句。这与只是为了好玩,您是否实际执行了您提供的代码完全相同。它实际输出12345:)@bjarkef此代码触发未定义的行为,因此如果A[5]处的值大于/等于5,它可能会输出12345。我对循环使用了i和j,而对for loopsA[j+1]使用了j引用下一个元素,而不是向该元素添加1。此代码按递增顺序对数组进行排序,因此我根据if语句一次交换两个元素,并按顺序检查我使用的每个元素。我认为这是欺骗,因为作者似乎在学习如何排序:)我刚才问过我的代码有什么问题,它没有给出所需的输出。不要认为否定的Benoitit没有作弊,除非有规则规定他不允许使用它。:)这是我认为最简单的方法。。某些控制盘不需要重新设计使用4更改j后,输出为2 3 4 5 0请使用新代码更新您的问题。你复制并粘贴了我的代码吗?
int A[5]={1,5,3,2,4};
for(int i=0;i<5;i++){
    for(int j=0;j<4;j++){
        if(A[j]>A[j+1])
        {
           int t=A[j];
           A[j]=A[j+1];
           A[j+1]=t;
        } 
    }
}
for(i=0;i<5;i++)
   cout<<A[i];
for(int i = 0; i < 5; i++){
    for(int j = i + 1; j < 5; j++){
        if(A[j] < A[i])
        {
            int t = A[j];
            A[j] = A[i];
            A[i] = t;
        } 
    }
}