c语言,递归求解最大字符串

cutdown3456 2019-12-05 12:22:55
请问这道题怎么做,做了好久了
...全文
260 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
DayDayUp! 2021-11-17
  • 打赏
  • 举报
回复

我的只有一个用例不通过
#include<stdio.h>
#include<string.h>
char *StrMax(char *sa[],int n)
{
int m = 0;
char *fin;
if(m<n-1)
{
if(strcmp(sa[m],sa[m+1])>=0) fin = sa[m];
else fin = sa[m+1];
}
return fin;
}
int main()
{
int n,i,j;
scanf("%d",&n);
char sa[100][99];
for(j = 0;j<n;j++)
{
scanf("%s",sa[j]);
}
int m = 0;
char *fin;
while(m<n-1)
{
if(strcmp(sa[m],sa[m+1])>=0) fin = sa[m];
else fin = sa[m+1];
m++;
}
//return fin;
//char *fin = StrMax(,n);
printf("%s",fin);
return 0;
}

寻开心 2019-12-05
  • 打赏
  • 举报
回复 2
char *strMax(const char *strArr[], int n) {
if ( n == 1 ) return strArr[0];
// 拿出最后一个字符串和递归的结果比较,返回大的
char * p = strMax(starArr, n-1);
if ( strcmp(p, strArr[n-1]) == 1 ) return p; else return strArr[n-1]);
}
kuangbao9 2019-12-05
  • 打赏
  • 举报
回复
const char *str_max = strMax(strArr, 6);改成const char *str_max = strMax(strArr, 5);
kuangbao9 2019-12-05
  • 打赏
  • 举报
回复
#include<stdio.h> #include<string> const char *strMax(const char *strArr[], int n) { const char *tmp = NULL; if (strcmp(strArr[n-1], strArr[n - 2]) == 1) { tmp = strArr[n-2]; strArr[n-2] = strArr[n-1]; strArr[n-1] = tmp; } if (n <= 2) { return strArr[0]; } strMax(strArr, n-1); } int main() { const char *strArr[] = { "BJilin","AJilin","HJilin","IJilin","IJilinU" }; const char *str_max = strMax(strArr, 6); printf("%s", str_max); getchar(); return 0; } 你试下这个

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧