酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

c语言设计一个函数,该函数用于查找n个(n大于等于3)字符串中的次大(第二大)字符串并返回其指针。 main函数已经写好如下: int main(){ int n,i; scanf("%d",&n); getchar(); //处理掉输入n之后的换行符 char s[n][101]; for(i=0;i<n;i++) gets(s[i]); //调用函数,传递字符串的个数及二维数组名 char *pstr = findstr(n,s); puts(pstr); return 0; } 你只需完成所需函数并提交该函数的代码,其他代码已经写好,stdio.h和string.h已包含。请不要重复提交main函数。 输入描述 第一行输入正整数n,测试数据保证n大于等于3。 从第二行起分n行输入n个不同的字符串 输出描述 输出n个字符串中第二大的字符串 提示 例如输入为: 3 abc abd aba 输出为: abc

```c #include <stdio.h> #include <string.h> // 查找次大字符串的函数 char *findstr(int n, char s[][101]) { int i, j; char *max_str = s[0]; // 初始化最大字符串 char *second_max_str = s[1]; // 初始化次大字符串 // 找到最大字符串 for (i = 1; i < n; i++) { if (strcmp(s[i], max_str) > 0) { max_str = s[i]; } } // 找到次大字符串 for (i = 0; i < n; i++) { if (strcmp(s[i], second_max_str) > 0 && strcmp(s[i], max_str) < 0) { second_max_str = s[i]; } } return second_max_str; } ``` 额外需要注意的逻辑点: 1. 比较字符串时要使用 `strcmp` 函数,确保比较的是字符串的内容而不是地址。 2. 要注意处理输入的字符串可能为空或者长度超过 100 的情况。 3. 函数返回的是指针,要确保指针指向的字符串在函数调用结束后仍然有效。 [2024-12-02 22:59:41 | AI写代码神器 | 295点数解答]

相关提问