一道c语言题目y,要求计算n个元素的指针数组s中最长的字符串长度,下...

一道c语言题目y,要求计算n个元素的指针数组s中最长的字符串长度,下面是我编写的程序。#include<stdio.h>#include<string.h>#includ... 一道c语言题目y,要求计算n个元素的指针数组s中最长的字符串长度,下面是我编写的程序。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int max_len(char *s[],int n)
{
int max,i;
max=strlen(s[0]);
for(i=1;i<n;i++)
if(max<strlen(s[i]))
max=strlen(s[i]);
return max;
}
int main(void)
{
char *s[10],str[10];
int n,i,length;
printf("Enter n:");
scanf("%d",&n);
scanf("%s",str);
for(i=0;i<n-1;i++){
s[i]=(char*)malloc(sizeof(char)*(strlen(str)+1));
strcpy(s[i],str);
scanf("%s",str);
}
length=max_len(s,n);
printf("length=%d",length);
return 0;
}

初学者,实在找不出为啥运行错误,大大们帮帮。。
展开
 我来答
无0所0不0能
2011-04-10 · TA获得超过137个赞
知道答主
回答量:171
采纳率:0%
帮助的人:76.5万
展开全部
既然你考虑到提前执行一次scanf("%s",str);
为啥忘了s[i]=(char*)malloc少执行一次?
或者循环这么写
do{scanf("%s",str);s[i]=(char*)malloc(sizeof(char)*(strlen(str)+1));strcpy(s[i],str);i++;}while(i<n);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式