改錯題
給定程序MODI1.C中函數(shù)fun的功能是:從N個字符串中找出最長的那個串,并將其地址作為函數(shù)值返回。各字符串在主函數(shù)中輸入,并放入一個字符串數(shù)組中。
請改正程序中的錯誤,使它能得出正確結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
給定源程序:
#include
#include
#define N 5
#define M 81
fun(char (*sq)[M])
{ int i; char *sp;
sp=sq[0];
for(i=0;i
if(strlen( sp)
sp=sq[i] ;
return sq;
}
main()
{ char str[N][M], *longest; int i;
printf("Enter %d lines :\n",N);
for(i=0; i
printf("\nThe N string :\n",N);
for(i=0; i
longest=fun(str);
printf("\nThe longest string :\n"); puts(longest);
}
解題思路:
第一處: 要求返回字符串的首地址,所以應(yīng)改為:char *fun(char (*sq)[M])。
第二處: 返回一個由變量sp控制的字符串指針,所以應(yīng)改為:return sp;。