定义一个二维字符数组,找出其最大值

定义一个二维字符数组,从键盘输入3个字符串,要求找出最大值并输出

基于new bing的编写:

#include <stdio.h>
#include <string.h>

#define MAX_LEN 20

int main() {
    // 定义二维字符数组
    char strs[3][MAX_LEN];

    // 从键盘输入三个字符串
    for (int i = 0; i < 3; i++) {
        printf("请输入第%d个字符串:", i + 1);
        scanf("%s", strs[i]);
    }

    // 找出最大值
    int max_index = 0;
    for (int i = 1; i < 3; i++) {
        if (strcmp(strs[i], strs[max_index]) > 0) {
            max_index = i;
        }
    }

    // 输出最大值
    printf("最大值为:%s\n", strs[max_index]);

    return 0;
}


在程序中,我们首先定义了一个二维字符数组 strs,共有 3 行,每行最多可以存储 MAX_LEN - 1 个字符。然后,我们使用一个循环从键盘输入三个字符串,并将它们保存到数组中。

接着,我们定义一个变量 max_index,用于记录当前找到的最大值所在的数组下标。我们使用一个循环遍历整个数组,比较每个字符串与当前最大值的大小关系,如果找到一个更大的字符串,就更新最大值所在的下标。

最后,我们输出最大值所在的字符串,即为所求的结果。

需要注意的是,在比较字符串的大小时,我们使用了库函数 strcmp。该函数用于比较两个字符串的大小关系,如果第一个字符串比第二个字符串小,返回负数;如果它们相等,返回 0;如果第一个字符串比第二个字符串大,返回正数。

#include <stdio.h>
#define N 3
int main()
{
    char arr[N][100];
    char * m = NULL;
    for (int i = 0; i < N; i++)
    {
        scanf("%s", &arr[i][0]);
        if (i == 0 || strcmp(arr[i], m) > 0) 
            m = arr[i];
    }
    printf("%s", m);
    return 0;
}