本题要求实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度。 函数接口定义: int max_len( char *s[], int n ); 其中n个字符串存储在s[]中,函数max_len应返回其中最长字符串的长度。 裁判测试程序样例: #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXN 10 #define MAXS 20 int max_len( char *s[], int n ); int main() { int i, n; char *string[MAXN] = {NULL}; scanf("%d", &n); for(i = 0; i < n; i++) { string[i] = (char *)malloc(sizeof(char)*MAXS); scanf("%s", string[i]); } printf("%d\n", max_len(string, n)); return 0; }用c语言代码输出
时间: 2024-01-29 12:02:19 浏览: 85
下面是实现题目要求的 `max_len` 函数的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int max_len(char *s[], int n) {
int max = 0;
for (int i = 0; i < n; i++) {
int len = strlen(s[i]);
if (len > max) {
max = len;
}
}
return max;
}
int main() {
int n;
scanf("%d", &n);
char *string[n];
for (int i = 0; i < n; i++) {
string[i] = (char *)malloc(sizeof(char) * MAX_LEN);
scanf("%s", string[i]);
}
printf("%d\n", max_len(string, n));
return 0;
}
```
在 `max_len` 函数中,我们遍历了指针数组 `s` 中的所有字符串,计算每个字符串的长度,并与当前最大长度进行比较,最终返回最长字符串的长度。
在 `main` 函数中,我们首先从标准输入读取了字符串数量 `n`,然后动态分配了一个指针数组 `string`,用于存储输入的字符串。接着我们遍历指针数组 `string`,为每个字符串动态分配空间,然后使用 `scanf` 函数从标准输入读取字符串。最后,我们调用 `max_len` 函数,输出最长字符串的长度。
阅读全文