#include<stdio.h> #include<math.h> #include<string.h> int max_len(char* s[], int n); int main(void) { int n; scanf("%d", &n); int i; char *a[11]; for (i = 0; i < n; i++) { scanf("%s", a[i]); } printf("%d", max_len(a, n)); return 0; } int max_len(char* s[], int n) { int i; int t = 0; char* max = s[0]; for (i = 1; i < n; i++) { if (strlen(max) < strlen(s[i])) { max = s[i]; t = i; } } return t; }
时间: 2024-01-17 13:04:03 浏览: 130
#include <stdio.h>
4星 · 用户满意度95%
这段代码的功能是读入一个整数n和n个字符串,然后调用函数max_len,返回其中长度最长的字符串的下标t。max_len函数的实现是遍历所有字符串,找到其中长度最长的字符串,并返回其下标。
需要注意的是,在定义char *a[11]时,应该为每个指针分配空间,否则会导致未定义行为。可以通过malloc函数动态分配空间,例如:
```c
char *a[11];
for (i = 0; i < n; i++)
{
a[i] = (char*)malloc(sizeof(char) * 100); // 为每个指针分配100个字符的空间
scanf("%s", a[i]);
}
```
阅读全文