| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 464 人关注过本帖
标题:程序无法正常运行,请问是什么原因呢?
只看楼主 加入收藏
葡萄树
Rank: 2
等 级:论坛游民
帖 子:23
专家分:64
注 册:2009-8-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
程序无法正常运行,请问是什么原因呢?
想要把a字符串里面最大的那个字母,然后放到b字符数组里面去。

#include "stdio.h"
#include "string.h"
main()
{char a[5][10]={"abcd","efgh","ijkl","mnop","qrst"},b[10],m;
 int i,j;
 for (i=0;i<5;i++)
     {strcpy (m,a[i][0]);
      for (j=1;j<4;j++)
          if (strcmp (m,a[i][j]) < 0)
             strcpy(m,a[i][j]);
      strcpy (b[i],m);
     }
 puts (b);
}

用TC执行,无法运行。
请问是什么原因呢?
代码中哪儿有错误呢?

[[it] 本帖最后由 葡萄树 于 2009-8-3 17:01 编辑 [/it]]
搜索更多相关主题的帖子: 运行 
2009-08-03 16:39
CrystalFan
Rank: 8Rank: 8
来 自:江苏南京
等 级:蝙蝠侠
帖 子:187
专家分:802
注 册:2009-7-30
收藏
得分:4 
strcpy (m,a[0]);
m是字符char型,不是字符串,编译应该通不过!

[[it] 本帖最后由 CrystalFan 于 2009-8-3 16:45 编辑 [/it]]
2009-08-03 16:42
CrystalFan
Rank: 8Rank: 8
来 自:江苏南京
等 级:蝙蝠侠
帖 子:187
专家分:802
注 册:2009-7-30
收藏
得分:4 
我看错了,a[0]是字符串,还是用strcpy()

[[it] 本帖最后由 CrystalFan 于 2009-8-3 16:48 编辑 [/it]]
2009-08-03 16:42
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:4 
{char a[5][10]={"abcd","efgh","ijkl","mnop","qrst"},b[10],m;
//m改成m[10]
2009-08-03 16:43
CrystalFan
Rank: 8Rank: 8
来 自:江苏南京
等 级:蝙蝠侠
帖 子:187
专家分:802
注 册:2009-7-30
收藏
得分:4 
不过应该将m也改为字符串,如4楼所说

[[it] 本帖最后由 CrystalFan 于 2009-8-3 16:49 编辑 [/it]]
2009-08-03 16:44
葡萄树
Rank: 2
等 级:论坛游民
帖 子:23
专家分:64
注 册:2009-8-3
收藏
得分:0 
嗯,谢谢,如4楼所说。我对程序进行了修改{char a[5][10]={"abcd","efgh","ijkl","mnop","qrst"},b[10],m;后面的m改成了m[10]

下面所对应的程序是不是也要进行一下改动呢?

我没有改动过,执行程序,程序依然无法运行。
2009-08-03 16:57
葡萄树
Rank: 2
等 级:论坛游民
帖 子:23
专家分:64
注 册:2009-8-3
收藏
得分:0 
#include "stdio.h"
#include "string.h"
main()
{char a[5][10]={"abcd","efgh","ijkl","mnop","qrst"},b[10],m[10];
 int i,j;
 for (i=0;i<5;i++)
     {strcpy (&m[0],&a[i][0]);
      for (j=1;j<4;j++)
          if (strcmp (&m[0],&a[i][j]) < 0)
             strcpy(&m[0],&a[i][j]);
      strcpy (&b[i],&m[0]);
     }
 puts (b);
}
最后我这样弄就好了。但是我还是不知道其中的原因!
2009-08-03 17:48
CrystalFan
Rank: 8Rank: 8
来 自:江苏南京
等 级:蝙蝠侠
帖 子:187
专家分:802
注 册:2009-7-30
收藏
得分:4 
m不需要定义成字符串
应该是:
程序代码:
#include "stdio.h"
#include "string.h"
main()
{char a[5][10]={"abcd","efgh","ijkl","mnop","qrst"},b[10],m;
int i,j;
for (i=0;i<5;i++)
     {
      m=a[i][0];
      for (j=1;j<4;j++)
          if (m<a[i][j])
             m=a[i][j];
      b[i]=m;
     }
b[5]=0;
puts (b);
}

字符赋值不要用strcpy(),它是字符串赋值!
2009-08-03 18:02
葡萄树
Rank: 2
等 级:论坛游民
帖 子:23
专家分:64
注 册:2009-8-3
收藏
得分:0 
嗯,懂了,strcpy()是给字符串赋值的。
原来也可以用赋值语句给字符赋值。
谢谢您,占用了您的时间,对不起!谢谢!
2009-08-03 18:08
快速回复:程序无法正常运行,请问是什么原因呢?
数据加载中...
 
   



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

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