用c++求对输入的十个整数按照从大到小排序为什么不对啊,求解答,看了半天看不出来问题在哪

img


#include
using namespace std;
int main()
{
const int N=10;
int s[N];int i=0;
for( i=0;i<=N-2;i++)
{ cin>>s[i];
for(int j=i+1;j<=N-1;j++)
{
if(s[j]>s[i])
{
int t=s[j];
s[j]=s[i];
s[i]=t;
}
}
}
for( i=0;i<=N-1;i++)
cout<<s[i]<<" ";
cout<<endl;
return 0;
}

要先用一个 for 循环读取输入 cin >> s[i];
之后在下一个 for 循环再排序

你题目的解答代码如下:

#include <iostream>

using namespace std;
int main()
{
    const int N = 10;
    int s[N];
    int i = 0;
    for (i = 0; i <= N - 1; i++)
        cin >> s[i];

    for (i = 0; i <= N - 2; i++)
    {
        for (int j = i + 1; j <= N - 1; j++)
        {
            if (s[j] > s[i])
            {
                int t = s[j];
                s[j] = s[i];
                s[i] = t;
            }
        }
    }
    for (i = 0; i <= N - 1; i++)
        cout << s[i] << " ";
    cout << endl;
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

解答如下

#include<iostream>
using namespace std;
int main()
{
    int n=10;
    int t[10];
    for(int j=0; j<n; j++)
        cin >> t[j];
    for(int i=0; i<n-1; i++)
        for(int j=0; j<n-1-i; j++)
            if(t[j]>t[j+1])
            {
                swap(t[j],t[j+1]);
            }
    for(int j=0; j<n; j++)
        cout << t[j] << " ";
    return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632