| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 382 人关注过本帖
标题:字典排序,运行怎么会崩溃的???
只看楼主 加入收藏
cs1344
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2014-3-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
字典排序,运行怎么会崩溃的???
#include<stdio.h>
#include<string.h>
#define N 50
struct score
{ char str[257];
};
int main()
{ struct score s[N];
  int i,j;char k[257];                           (k[]是用来交换字符串的)
  do
  {  
    printf("Input number\n");
    scanf("%d",&j);
  }while(j<1||j>50);
   for(i=0;i<j;i++);
   gets(s[i].str);
   for(i=0;i<j;i++)
   { if(strcmp(s[i].str,s[i+1].str)>0)                                        (字典比较)
      {strcpy(k,s[i].str);strcpy(s[i].str,s[i+1].str);strcpy(s[i+1].str,k);}
   }
   for(i=0;i<j;i++)
   puts(s[i].str);

   return 0;
}



编译,运行都可以,可为什么会输入了J后就不行了??
搜索更多相关主题的帖子: include number 字符串 
2014-03-17 19:33
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:10 
#include<stdio.h>
#include<string.h>
#define N 50
struct score
{ char str[257];
};
int main()
{ struct score s[N];
  int i,j;char k[257];                           (k[]是用来交换字符串的)
  do
  {  
    printf("Input number\n");
    scanf("%d",&j);
  }while(j<1||j>50);

   for(i=0;i<j;i++) ;  //   ---这里的分号应该删掉,否则为死循环
   gets(s[i].str);

   for(i=0;i<j;i++)     //(字典比较) -- 此排序代码不对,少一个内循环,查一下书
   { if(strcmp(s[i].str,s[i+1].str)>0)   
      {strcpy(k,s[i].str);strcpy(s[i].str,s[i+1].str);strcpy(s[i+1].str,k);}
   }
   for(i=0;i<j;i++)
   puts(s[i].str);

   return 0;
}



[ 本帖最后由 ying8501 于 2014-3-17 20:22 编辑 ]
2014-03-17 20:20
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:10 
注意,如果你要用到for循环和if语句,就要注意后面不要跟‘ ;’ 除非特定情况下

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2014-03-18 09:30
快速回复:字典排序,运行怎么会崩溃的???
数据加载中...
 
   



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

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