gpt4 book ai didi

C++排序(升序,降序)整数数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:45:07 28 4
gpt4 key购买 nike

所以我是 C++ 的新手,我正在尝试一些初学者练习,这是问题所在:我必须按升序和降序对整数数组进行排序,但每次我尝试按升序排序时,都会出现 0在我的数组中无处替换以前的数组整数。只有当我使用“升序”选项时才会发生这种情况。我试过重新排列数组中的数字并更改它们,但同样的事情发生了,我真的无法弄清楚问题所在。非常感谢您的帮助,我希望我的问题不是愚蠢的,不会浪费您的时间。

#include<iostream>
using namespace std;

int main()
{

int i,y,choice,temp,am[5]={8,6,10,7,9};

cout<<"Choice 1 : Descending\nChoice 2 : Ascending\n";
cin>>choice;

if(choice==1)
{
for(i=0;i<5;i++)
{
y=i+1;
while(y<5)
{
while(am[i]<am[y])
{
temp=am[i];
am[i]=am[y];
am[y]=temp;
y++;
}
y++;
}
}
}
else if(choice==2)
{
for(i=0;i<5;i++)
{
y=i+1;
while(y<5)
{
while(am[i]>am[y])
{
temp=am[i];
am[i]=am[y];
am[y]=temp;
y++;
}
y++;
}
}
}
else
cout<<"Error\n";

for(i=0;i<5;i++)
cout<<"am[i]:"<<am[i]<<"\n";

return 0;
}

here is what i see in cmd

最佳答案

您正在使用选择排序。你的程序有 4 个错误。使用“if”而不是 while

#include<iostream>
using namespace std;

int main()
{
int i,y,choice,temp,am[5]={8,6,10,7,9};

cout<<"Choice 1 : Descending\nChoice 2 : Ascending\n";
cin>>choice;

if(choice==1)
{
for(i=0;i<5;i++)
{
y=i+1;
while(y<5)
{
if(am[i]<am[y]) //Correction1
{
temp=am[i];
am[i]=am[y];
am[y]=temp;
//y++; //Correction2
}
y++;
}
}
}
else if(choice==2)
{
for(i=0;i<5;i++)
{
y=i+1;
while(y<5)
{
if(am[i]>am[y]) //Correction3
{
temp=am[i];
am[i]=am[y];
am[y]=temp;
//y++; //Correction4
}
y++;
}
}
}
else
cout<<"Error\n";

for(i=0;i<5;i++)
cout<<"am[i]:"<<am[i]<<"\n";

return 0;
}

关于C++排序(升序,降序)整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40236607/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com