定义一个二维字符数组,从键盘输入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;
}