最近帮他们做了一个简单的c++的题目,以前做过,当时是借鉴的别人的代码,现在也忘得差不多了,不过思路还有,现在正好可以再温习一下。

题目要求如下:

  先输入你要输入的字符串的个数。然后换行输入该组字符串。每个字符串以回车结束,每个字符串不多于一百个字符。 如果在输入过程中输入的一个字符串为“stop”,也结束输入。 然后将这输入的该组字符串按每个字符串的长度,由小到大排序,按排序结果输出字符串。如果存在多个字符串长度相同,则按照原始输入顺序输出。
  输入格式:
  字符串的个数,以及该组字符串。每个字符串以‘\n’结束。如果输入字符串为“stop”,也结束输入.
  输出格式:
  可能有多组测试数据,对于每组数据, 将输入的所有字符串按长度由小到大排序输出(如果有“stop”,不输出“stop”)。
  输入样例:
  4
  faeruhyytrjh tjytj
  hsrthts   hjnshtgfhs
  stop
  3
  htrskbns
  bsartanjsf tyjndyt
  nsr jj jtey
  输出样例:
  faeruhyytrjh tjytj
  hsrthts   hjnshtgfhs
  htrskbns
  nsr jj jtey
  bsartanjsf tyjndyt

好,下面先把代码贴出来

#include<iostream>

using namespace std;

void sort(string *a, int n);//sort函数进行排序  字串指针a 字串数量n 

int main(){
int n,i,j = ;
string b;
begin:
while(scanf("%d",&n)!=' '){
getchar(); //获取输入的n的值 注意它是读取单一字符的
string *p = NULL;//初始化指针
p=new string[n];//为指针分配动态空间
for(i = ;i < n; ++i){
//b = "\n"; 在下次使用时清除缓存
getline(cin,b);
if(b != "stop"){
p[j] = b;
j++;
}else{
break;
}
}
sort(p,j);
cout<<" "<<endl;
for(i = ;i < j;++i){
cout<<p[i]<<endl;
}
}
goto begin;
return ; } /**
*排序采用冒泡排序法
*/
void sort(string *a,int n){
int i,j;
string b;
for(i = ;i < n;++i){
for(j = ;j < n-i;++j){
if(a[j].size()>a[j + ].size()){//size 获取字串长度(大小)
b=a[j];
a[j]=a[j + ];
a[j + ]=b;
}
}
} }

这道题的思路其实不是很难,就是在实际操作的时候会遇到一些问题。

  1、首先,在输入的时候,可以循环用cin输入,但是不可以用gets,因为gets无法以空格为结束来终止输入。

  2、自我感觉使用快排会更快一点,但是鉴于现在输入的数据量的关系,冒泡排序也还可以。

  3、在这段代码里我用到了getline,这就是比较偷懒的行为,建议不要过多使用它,多使用cin.getline,会更加灵活多变。

最新文章

  1. JavaScript(八)——复习一(重要内容基本包含在内)
  2. UVALive 4728 Squares (平面最远点对)
  3. poj 1835 宇航员
  4. CodeSmith Generator 7.0.2激活步骤
  5. 阿里云Nginx绑定多个域名的方法
  6. .net web获取自己的ip地址
  7. Leetcode 107 Binary Tree Level Order Traversal II 二叉树+BFS
  8. 一、HTML和CSS基础--HTML+CSS基础课程--第6部分
  9. Android内核剖析读书笔记
  10. cocos2d-x 全面总结--字体描边和制作阴影
  11. RedHat Install
  12. C模块划分
  13. oracle模糊查询效率可这样提高
  14. 2013第38周日Java文件上传下载收集思考
  15. nodejs+websocket实时聊天系统
  16. Cocos Creator学习二:查找节点和查找组件
  17. Day 4-2 random模块
  18. 欧拉函数(C语言实现)
  19. 『转』MySQL存储过程语法例子
  20. C语言复制图片文件

热门文章

  1. 改变highCharts的X轴和Y轴的数据刻度
  2. Hibernate 相关配置
  3. SQL Server信息偏差影响表联结方式统计
  4. eclipse通过maven进行打编译
  5. Appium环境搭建——安卓模拟器(AVD)调试 2-运行Apk失败点的总结
  6. vue项目打包后的资源路径问题
  7. TensorFlow - 在 windows 系统上安装
  8. DataGrip for Mac破解步骤详解 亲测好用
  9. tomcat使用自签名证书实现https加密访问
  10. C 函数传参问题