![]() |
#2
lianjiecuowu2011-06-13 23:50
#include<iostream>
#include <string> using namespace std; int shuz(int a[],int length); int main() { bool quit=false; int i; while(true) { int choice; cout<<"请输入您的选择 :"<<endl; cout<<"1.按数值大小进行排序"<<'\t'<<"2.按字符串大小进行排序"<<'\t'<<"3.quit"<<endl; cin>>choice; switch(choice) { case 1: cout<<"您选择了按数值大小进行排序的选项"<<endl<<"请输入要排序的数字:"<<endl; const int N=6; int data[N]; for(i=0;i<N;i++) cin>>data[i]; cout<<endl<<endl; shuz(data,N); break; case 2: cout<<"您选择了按字符串大小进行排序的选项"<<endl<<"请输入要排序的数字:"<<endl; string s1,s2,s3,s4,s5,s6; cin>>s1>>s2>>s3>>s4>>s5>>s6; string a[6]={s1,s2,s3,s4,s5,s6}; for(i=0;i<5;i++) for(j=0;j<5-i;j++) { if(a[j]>a[j+1]) { temp=a[j+1]; a[j+1]=a[j]; a[j]=temp; } } for(i=0;i<5;i++) cout<<a[i]<<'\t'; cout<<endl; break; case 3: quit=true; break; default: cout<<"输入有误"<<endl; break; } if(quit==true) break; } system("pause"); return 0; } int shuz(int a[],int length) { int i,j,temp; for(i=0;i<length;i++) cout<<a[i]<<'\t'; cout<<endl<<endl; for(i=0;i<length-1;i++) for(j=0;j<length-i-1;j++) { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } cout<<"进行排序后:"<<endl; for(i=0;i<length;i++) cout<<a[i]<<'\t'; } 我已经穷尽脑细胞了,可不可以给点提示啊,ing......好纠结啊,帮忙想点办法啊...... ![]() ![]() ![]() ![]() ![]() ![]() ![]() 改了为什么还是不对啊~~~~~~~ |
using namespace std;
int shuz(int a[],int length);
int main()
{
bool quit=false;
int i;
while(true)
{
int choice;
cout<<"请输入您的选择 :"<<endl;
cout<<"1.按数值大小进行排序"<<'\t'<<"2.按字符串大小进行排序"<<'\t'<<"3.quit"<<endl;
cin>>choice;
switch(choice)
{
case 1:
cout<<"您选择了按数值大小进行排序的选项"<<endl<<"请输入要排序的数字:"<<endl;
const int N=6;
int data[N];
for(i=0;i<N;i++)
cin>>data[i];
cout<<endl<<endl;
shuz(data,N);
break;
case 2: //关键在case 2 :按字符串大小排序,下面是我的实现方法,
cout<<"您选择了按字符串大小进行排序的选项"<<endl<<"请输入要排序的数字:"<<endl; //貌似真的不能实现好像,额..好纠结,帮忙看看错在哪里
const int M=6; //主要是思路,如何进行比较啊,是数字进行排序啊是
int data[M];
for(i=0;i<M;i++)
cin>>data[i];
cout<<<<endl<<endl;
for(i=0;i<M;i++)
for(j=0;j<M-i-1;j++)
{
if(strcmp(data[j],data[j+1])>0)
{
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
}
cout<<"进行排序后:"<<endl;
for(i=0;i<M;i++)
cout<<data[i]<<'\t';
cout<<endl<<endl;
break;
case 3:
quit=true;
break;
default:
cout<<"输入有误"<<endl;
break;
}
if(quit==true)
break;
}
system("pause");
return 0;
}
int shuz(int a[],int length)
{
int i,j,temp;
for(i=0;i<length;i++)
cout<<a[i]<<'\t';
cout<<endl<<endl;
for(i=0;i<length-1;i++)
for(j=0;j<length-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
cout<<"进行排序后:"<<endl;
for(i=0;i<length;i++)
cout<<a[i]<<'\t';
}








[ 本帖最后由 lianjiecuowu 于 2011-6-14 17:29 编辑 ]