c++有5个字符串,要求对它们按由小到大顺序排列,用string方法。求注释

1、 有5个字符串,要求对它们按由小到大顺序排列,用string方法。
#include <iostream>
#include <string>
using namespace std;
int main()
{
int i;
string str[5];
void sort(string s[]);
cout<<"Please input string:"<<endl;
for(i=0;i<=5;i++)
cin>>str[i];
sort(str);
cout<<"The sorted string is:"<<endl;
for(i=0;i<=5;i++)
cout<<str[i]<<" ";
cout<<endl;
return 0;
}

void sort(string s[])
{
int i,j;
string temp;
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
if(s[j]>s[j+1])
{
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
求注释

#include <iostream>
#include <string>
using namespace std; //以上为引用头文件
int main() //主函数
{
int i; //创建变量i
string str[5]; //定义数组str
void sort(string s[]); //定义函数sort
cout<<"Please input string:"<<endl; //输出Please input string:
for(i=0;i<=5;i++)
cin>>str[i]; //输入5个字符串
sort(str); //调用str函数
cout<<"The sorted string is:"<<endl; //输出The sorted string is
for(i=0;i<=5;i++)
cout<<str[i]<<" "; //输出已排列好的字符串
cout<<endl;
return 0;
}

void sort(string s[])
{
int i,j;
string temp;
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
if(s[j]>s[j+1]) //对每个进行比较
{
temp=s[j];
s[j]=s[j+1];//把小的数放在前面
s[j+1]=temp;
}
}
以上~~
for(i=0;i<=5;i++)
应该为for(i=0;i<5;i++)
不然就是6个数了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-01
#include <string>
#include <iostream>
using namespace std;//头文件,标准命名空间,我也不是很懂但基本都得有
void Sort(string s[]);
int main()
{
string s[5];//string型数组,类似c的二级字符数组,但好用一些
int i;
cout<<"Please input strings:"<<endl;
for(i=0;i<5;i++)//输入
{
cin>>s[i];
}
Sort(s);//排序
for(i=0;i<5;i++)//输出
{
cout<<s[i]<<endl;
}
return 0;
}
void Sort(string s[])冒泡法排序,不懂可以搜一下
{
string temp;
int i,j;
for(i=1;i<5;i++)
{
for(j=0;j<5-i;j++)
{
if(s[j]>s[j+1])
{
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
}
return ;
}
第2个回答  2009-03-14
程序有些计数错误,请在查证,你这个程序处理的绝对不只是5个字符串,应该是6个,但是sort函数里有没有排序完全
第3个回答  2009-03-14
用C++的string当然是要用标准库了,先mark,写程序去
第4个回答  2018-01-05
将主函数里for循环i<=5等号去掉就可以了
相似回答