| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 761 人关注过本帖
标题:怎样输出n个字符串,然后把这n个字符串按顺序输出?
只看楼主 加入收藏
jj369258
Rank: 4
等 级:业余侠客
帖 子:116
专家分:226
注 册:2010-12-2
结帖率:69.57%
收藏
已结贴  问题点数:20 回复次数:14 
怎样输出n个字符串,然后把这n个字符串按顺序输出?
第一行,有2个整数n,m。(0< n< =10000, 0 < m < 16)
其后n行,每行有m个连续的大写字母。

Output

n行,按升序排列字母串。

Sample Input


5 5
BCIEJ
ZXUEJ
CVEAE
ABCED
CVECE

Sample Output


ABCED
BCIEJ
CVEAE
CVECE
ZXUEJ

搜索更多相关主题的帖子: 字符串 
2010-12-23 14:36
慕容绾绾
Rank: 2
等 级:论坛游民
帖 子:15
专家分:66
注 册:2010-12-23
收藏
得分:3 
用循环,然后用strcmp比较。
2010-12-23 16:02
a343637412
Rank: 7Rank: 7Rank: 7
来 自:そ ら
等 级:黑侠
帖 子:357
专家分:620
注 册:2010-9-26
收藏
得分:3 
记得 申明头文件.....
2010-12-23 16:26
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:3 
就是用string.h中strcmp()啊.
#include <stdio.h>
#include <string.h>
void main()
{
   char *str[5],*temp;
   int i,j;
   str[0]="BCIEJ";  //有多少个字符串自己可以改
   str[1]="ZXUEJ";
   str[2]="CVEAE";
   str[3]="ABCED";
   str[4]="CVECE";
   for(i=0;i<4;i++)  //自己也不知道是什么排序,但是有用
     for(j=i+1;j<5;j++)
      if(strcmp(*str[i],*str[j])>0)
        {
          temp=str[i];
          str[i]=str[j];
          str[j]=temp;
         )
    for(i=0;i<5;i++)
     printf("%s\n",*str[i]);
 }
  

   唯实惟新 至诚致志
2010-12-23 17:11
holy_pigh
Rank: 1
等 级:新手上路
帖 子:17
专家分:5
注 册:2010-12-8
收藏
得分:3 
求代码!!!
2010-12-23 17:34
jj369258
Rank: 4
等 级:业余侠客
帖 子:116
专家分:226
注 册:2010-12-2
收藏
得分:0 
回复 4楼 qq1023569223
应该是把字符串复制过去吧?
2010-12-23 18:09
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:3 
if(strcmp(*str[i],*str[j])>0)
strcmp函数  不用你去改变字符  它自动寻找第一个不一样的字符去比较
如果第一个一样  会按照第二个比较

                                         
===========深入<----------------->浅出============
2010-12-23 18:11
holy_pigh
Rank: 1
等 级:新手上路
帖 子:17
专家分:5
注 册:2010-12-8
收藏
得分:0 
回复 7楼 laoyang103
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
      int n,m,i,j;
      char *buff[100],*p,*min;
      printf("please input n,m\n");
      scanf("%d %d",&n,&m);
      printf("please input %d lines,each line contains %d numbers\n",n,m);
      for(i=0;i<n;i++)
      scanf("%s",buff+i);
      for(i=0;i<n;i++)
      {
      min=buff[i];
      for(j=i+1;j<n;j++)
      if(strcmp(min,buff[i])<0)
      {
      strcpy(p,min);
      strcpy(min,buff[i]);
      strcpy(buff[i],p);
      }
      }
      for(i=0;i<n;i++)
      printf("%s",buff[i]);
      system("pause");                                    
      }
帮我看一下哪里有错误好吗?谢谢。
2010-12-23 18:32
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:3 
回复 8楼 holy_pigh
你这里的buff是不可以用“buf+i”的,buff你定义的时候是个数组,数组的变量名是个常量不可以加加的。

Go Go Go
2010-12-23 19:07
holy_pigh
Rank: 1
等 级:新手上路
帖 子:17
专家分:5
注 册:2010-12-8
收藏
得分:0 
回复 9楼 zhaoya881010
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
      int n,m,i,j;
      char *buff[100],*p,*min;
      printf("please input n,m\n");
      scanf("%d %d",&n,&m);
      printf("please input %d lines,each line contains %d numbers\n",n,m);
      for(i=0;i<n;i++)
      scanf("%s",buff[i]);
      for(i=0;i<n;i++)
      {
      min=buff[i];
      for(j=i+1;j<n;j++)
      if(strcmp(min,buff[i])<0)
      {
      strcpy(p,min);
      strcpy(min,buff[i]);
      strcpy(buff[i],p);
      }
      }
      for(i=0;i<n;i++)
      printf("%s",buff[i]);
      system("pause");                                    
      }
还是有问题,不知道出在哪里
2010-12-23 19:21
快速回复:怎样输出n个字符串,然后把这n个字符串按顺序输出?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017350 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved