请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
试题程序。
#define M 5 #define N 20 int fun(char (*ss)[N], int *n) { int i, k = 0, len = N; for (i = 0; i < ______; i++) { len = strlen(ss[i]); if (i == 0) *n = len; if (len ____ * n) { *n = len; k = i; } } return (_____); } main() { char ss[M][N] = {"shanghai", "guangzhou", "beijing", "tianjing", "chongqing"}; int n, k, i; printf("\nThe originalb stringsare:\n"); for (i = 0; i < M; i++) puts(ss[i]); k = fun(ss, &n); printf("\nThe length of shortest string is: % d\n", n); printf("\nThe shortest string is: % s\n", ss[k]); }
int fun(char(* ss)[N], int *n)
int i, k = 0, len = N;
for (i = 0; i < ___M___; i++) // 这里是要遍历数组,数组的长度为M,
{
len = strlen(ss[i]);
if (i == 0)
*n = len;
if (len _<___ * n); // 这里是取最小的长度,
{
*n = len;
k = i;
}
}
return ( _____ ); // 函数返回最小长度字符串的下标,这里为k
}