C语言程序出现这个warning C4018: '<' : signed/unsigned mismatch错误

{inti,k=0,maxlen;maxlen=strlen(a[k]);for(i=1;i<num;i++){if(maxlen<strlen(a[i])){maxle... {int i,k=0,maxlen;
maxlen=strlen(a[k]);
for(i=1;i<num;i++){
if(maxlen<strlen(a[i])){
maxlen=strlen(a[i]);
k=i;
}
}
*max=a[k];

}
这个程序哪儿错了啊。。怎么改???
展开
 我来答
zhangsonglin_c
高粉答主

2014-03-04 · 醉心答题,欢迎关注
知道大有可为答主
回答量:3.7万
采纳率:83%
帮助的人:7046万
展开全部
程序不全,不能准确判断(尤其是缺少变量说明)。错误提示应该与这一段没有关系,是数据类型有符号与无符号的不匹配。
最有可能出错的是
*max=a[k];

如果(char **max),没有问题;如果是(char *max)肯定不对。
cooke1234
2014-03-04 · TA获得超过6861个赞
知道大有可为答主
回答量:4617
采纳率:72%
帮助的人:3618万
展开全部
这个不是错,只是一个警告而已。
警告你 '<'符号两边的变量,一个是有符号数值,一个是无符号数值。
看一下 i<num 中的 num是什么类型。
maxlen < strlen(a[i]) 中的strlen()返回的是什么类型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qingyang8513
推荐于2018-02-27 · 超过20用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:51.2万
展开全部
这是一个警告,编译是可以通过的,程序也可以运行。

警告提示的原因是:i和num不是同一种类型造成的,i是int型,而num是unsigende int 型,所以会有强制类型转换,这个不影响程序,只要自己知道就行了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-04
展开全部
num 未声明定义.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式