c语言数组求3个字符串(每串不超过20个字符)中的最大者。补充完善程序,以实现其功能。
时间: 2024-03-14 18:46:59 浏览: 74
以下是一个示例程序,可以用数组的方式求出3个字符串中的最大者:
```
#include <stdio.h>
#include <string.h>
int main() {
char strs[3][20];
printf("请输入三个字符串,每个字符串不超过20个字符:\n");
for (int i = 0; i < 3; i++) {
scanf("%s", strs[i]);
}
int max_len = strlen(strs[0]);
int max_index = 0;
for (int i = 1; i < 3; i++) {
int len = strlen(strs[i]);
if (len > max_len) {
max_len = len;
max_index = i;
}
}
printf("最大的字符串是:%s\n", strs[max_index]);
return 0;
}
```
该程序定义了一个二维字符数组 `strs`,用于存储输入的三个字符串。通过 `for` 循环和 `scanf` 函数从标准输入中读入三个字符串。接下来使用 `strlen` 函数分别求出三个字符串的长度,并通过一个循环找到最长的字符串所在的下标。最后将最长的字符串输出即可。
相关问题
c语言求3个字符串(每串不超过20个字符)中的最大者。补充完善程序,以实现其功能。
以下是一个示例程序,可以求出3个字符串中的最大者:
```
#include <stdio.h>
#include <string.h>
int main() {
char str1[20], str2[20], str3[20];
printf("请输入三个字符串,每个字符串不超过20个字符:\n");
scanf("%s%s%s", str1, str2, str3);
int len1 = strlen(str1);
int len2 = strlen(str2);
int len3 = strlen(str3);
if (len1 >= len2 && len1 >= len3) {
printf("最大的字符串是:%s\n", str1);
} else if (len2 >= len1 && len2 >= len3) {
printf("最大的字符串是:%s\n", str2);
} else {
printf("最大的字符串是:%s\n", str3);
}
return 0;
}
```
该程序首先定义了三个字符串 `str1`、`str2` 和 `str3`,分别用于存储输入的三个字符串。然后通过 `scanf` 函数从标准输入中读入三个字符串。接下来使用 `strlen` 函数分别求出三个字符串的长度,并通过比较得到最长的字符串。最后将最长的字符串输出即可。
c语言:输入20个字符串到字符数组str[20][30],统计其中相同字符串个数的最大数。
可以使用一个嵌套循环遍历字符数组中的每一个字符串,再使用另一个循环统计与该字符串相同的字符串数量。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STR_LEN 30
#define MAX_STR_NUM 20
int main() {
char str[MAX_STR_NUM][MAX_STR_LEN]; // 字符数组
int count[MAX_STR_NUM] = {0}; // 用于统计相同字符串数量的数组
int max_count = 0; // 最大相同字符串数量
int i, j;
// 输入字符串
printf("请输入20个字符串(每行一个,不超过%d个字符):\n", MAX_STR_LEN - 1);
for (i = 0; i < MAX_STR_NUM; i++) {
scanf("%s", str[i]);
}
// 统计相同字符串数量
for (i = 0; i < MAX_STR_NUM; i++) {
if (count[i] > 0) { // 如果已经统计过该字符串,则跳过
continue;
}
// 统计与当前字符串相同的数量
for (j = i + 1; j < MAX_STR_NUM; j++) {
if (strcmp(str[i], str[j]) == 0) {
count[i]++;
count[j]++;
}
}
// 更新最大相同字符串数量
if (count[i] > max_count) {
max_count = count[i];
}
}
// 输出结果
printf("最大相同字符串数量为:%d\n", max_count);
return 0;
}
```
在这个程序中,我们首先定义了一个字符数组 `str` 和一个用于统计相同字符串数量的数组 `count`,并将后者所有元素初始化为 0。然后,使用一个循环遍历字符数组中的每一个字符串,再使用另一个循环统计与该字符串相同的字符串数量。具体来说,对于字符串数组中的第 `i` 个字符串,我们在后续的循环中从字符串数组的第 `i+1` 个字符串开始遍历,如果发现有相同的字符串,就将两个字符串在 `count` 数组中的对应元素的值都加一。这样,在遍历完所有的字符串后,`count` 数组中的每个元素就表示对应字符串在字符数组中出现的次数。最后,再遍历一遍 `count` 数组,找到其中的最大值即可。
阅读全文