改错题: 下列给定程序中,函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
参考答案:
改错题:#include <stdio.h>
#include <string.h>
#define N 5
#define M 81
/********found********/
fun(char (*sq)[N])
{
考试站网 int i;
char *sp;
sp = sq[0];
for (i=0; i<N; i++)
if (strlen(sp) < strlen(sq[i]))
sp = sq[i];
/********found********/
return sq;
}
main()
{
char str[N][M], *longest;
int i;
printf("Enter %d lines:\n", N);
for (i=0; i<N; i++)
gets(str[i]);
printf("\nThe N string :\n", N);
for (i=0; i<N; i++)
puts(str[i]);
longest = fun(str);
printf("\nThe longest string :\n");
puts(longest);
}
第一处:fun(char (*sq)[N]) 应改为 char * fun(char (*sq)[M])
第二处:return sq;应改为 return sp;