你的代码中,max需要修改为字符数组,max[50]
你这个代码是求最大字符串,不是最大长度的字符串,最大字符串是按照ASCII码值来比较的。
下面是2个代码,第一个是修改了你的代码,按字典序(也就是ASCII码值)求最大字符串的。第2个是按字符串长度求最长字符串的。
(1)按字典序求最大字符串
代码:
#include <stdio.h>
#include <string.h>
int main()
{
int n, i;
char a[50], max[50]; //修改,这里max需要申请50个空间
while (scanf("%d", &n) != EOF)
{
scanf("%s", max);
for (i = 1; i < n; i++ )
{
scanf("%s", a);
if (strcmp(a, max) > 0)
strcpy(max, a);
}
printf("%s\n", max);
}
return 0;
}
(2)按字符串长度求最长字符串
代码:
#include <stdio.h>
#include <string.h>
int main()
{
int n, i;
char a[50], max[50]; //修改,这里max需要申请50个空间
while (scanf("%d", &n) != EOF)
{
scanf("%s", max);
for (i = 1; i < n; i++ )
{
scanf("%s", a);
if (strlen(a) > strlen(max) )
strcpy(max, a);
}
printf("%s\n", max);
}
return 0;
}
#include<stdio.h>
#include<string.h>
#define n 100
int main()
{
char a[n][n];
int i, index = 0, N;
scanf("%d", &N);
for (i = 0; i < N; i++)
{
scanf("%s", &a[i]);
}
for (i = 0; i < N; i++)
{
if (strcmp(a[i], a[index]) > 0)
{
index = i;
}
}
printf("%s", a[index]);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!