作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以我是 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;
}
最佳答案
您正在使用选择排序。你的程序有 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/
序 大家好呀,我是summo,这次来写写我在上班空闲(摸鱼)的时候做的一个小网站的事。去年阿里云不是推出了个活动嘛,2核2G的云服务器一年只要99块钱,懂行的人应该知道这个价格在业界已经是非常良心了
我尝试根据给定的级别顺序(BFS 顺序)构造 BST。我知道这是可能的,但我不知道我该怎么写。问题是我必须使用 BFS 序列。所以,我不能在这里使用递归,我必须迭代地编写我的程序......我发现这有
我是一名优秀的程序员,十分优秀!