| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 530 人关注过本帖
标题:一个小问题 谁能帮帮我啊
取消只看楼主 加入收藏
chuexuezhe
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-9-27
收藏
 问题点数:0 回复次数:3 
一个小问题 谁能帮帮我啊
main()
{
    char st[20],cs[5][20];
    int i,j,p;
    printf("input country's name:\n");
    for(i=0;i<5;i++)
      gets(cs[i]);
    printf("\n");
    for(i=0;i<5;i++)
      { p=i;strcpy(st,cs[i]);
    for(j=i+1;j<5;j++)
      if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}
    if(p!=i)
      {
    strcpy(st,cs[i]);
    strcpy(cs[i],cs[p]);
    strcpy(cs[p],st);
      }
    puts(cs[i]);}printf("\n");
}

麻烦哪位大哥告诉我下if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}

底下这样做不是把前面的st给覆盖了 那上面的循环工作不是白做了吗
  if(p!=i)
      {
    strcpy(st,cs[i])

或者麻烦哪位大哥帮我写下这个程序的过程吧 我都已经想了1夜了没琢磨出来

if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}
 if(p!=i)
      {
    strcpy(st,cs[i]);   这样的话 上面的j的循环 不是白做了吗 又被底下的cs[i]给覆盖了


这是书上写的题本题编程思路如下:五个国家名应由一个二维字符数组来处理。然而C语言规定可以把一个二维数组当成多个一维数组处理。 因此本题又可以按五个一维数组处理, 而每一个一维数组就是一个国家名字符串。用字符串比较函数比较各一维数组的大小,并排序,输出结果即可。
编程如下:
main()
{
    char st[20],cs[5][20];
    int i,j,p;
    printf("input country's name:\n");
    for(i=0;i<5;i++)
      gets(cs[i]);
    printf("\n");
    for(i=0;i<5;i++)
      { p=i;strcpy(st,cs[i]);
    for(j=i+1;j<5;j++)
      if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}
    if(p!=i)
      {
    strcpy(st,cs[i]);
    strcpy(cs[i],cs[p]);
    strcpy(cs[p],st);
      }
    puts(cs[i]);}printf("\n");
}

我主要就是卡到if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}
    if(p!=i)
      {
    strcpy(st,cs[i]);这里了 因为st已经被赋值了 下面的cs[i]又给st赋值 那前面的循环不是白做了吗
我分别输入的是 shanghai  beijing wuhai  sichuan xinjiang

[[it] 本帖最后由 chuexuezhe 于 2008-9-27 09:42 编辑 [/it]]
搜索更多相关主题的帖子: 一个小问题 
2008-09-27 09:27
chuexuezhe
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-9-27
收藏
得分:0 
大哥在帮忙看下吧 我比较着急 想了好久没想明白
2008-09-27 09:40
chuexuezhe
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-9-27
收藏
得分:0 
当然书上没写 我自己已经加了 我就是想明白我所说的那些问题 大哥能帮我指下路吗
2008-09-27 09:55
chuexuezhe
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-9-27
收藏
得分:0 
可是這樣就重新賦值了~ 是啊 我的意思就是这个 他这样做基本没意义啊 因为测试过来 beijing是最小的字符串 而a[i] 等于我输入的shanghai 这样~~
2008-09-27 10:03
快速回复:一个小问题 谁能帮帮我啊
数据加载中...
 
   



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

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