用c语言编写程序,从键盘输入三个字符串,分别存入字符数组a、b、C中(数组大小均为50),找出三个字符串中最小的字符串存放到字符数组m中(数组大小为50)并输出。
时间: 2024-02-18 11:02:48 浏览: 64
好的,下面是程序的代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char a[50], b[50], c[50], m[50];
printf("请输入三个字符串:\n");
scanf("%s %s %s", a, b, c);
// 找出最小的字符串
strcpy(m, a);
if (strcmp(m, b) > 0) {
strcpy(m, b);
}
if (strcmp(m, c) > 0) {
strcpy(m, c);
}
printf("最小的字符串是:%s\n", m);
return 0;
}
```
程序首先定义了四个字符数组,分别是存储输入字符串的数组 a、b、c 和存储最小字符串的数组 m。然后通过 scanf 函数从键盘输入三个字符串,并将它们存储到相应的数组中。
接着通过使用 strcmp 函数,将数组 m 初始化为数组 a,并逐一与数组 b 和 c 进行比较,将最小的字符串存储到数组 m 中。
最后,程序输出存储在数组 m 中的最小字符串。
希望能够帮到你,如果还有其他问题,请随时提出。
相关问题
用c语言编写程序,从键盘输入三个字符串,分别存入字符数组a、b、c中(数组大小均为 50),找出三个字符串中最小的字符串存放到字符数组m中(数组大小为50)并输出。
好的,这是一个简单的字符串比较问题,以下是C语言程序实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char a[50], b[50], c[50], m[50];
printf("请输入三个字符串,每个字符串长度不超过50:\n");
scanf("%s%s%s", a, b, c);
strcpy(m, a); // 先将第一个字符串存入m中
if (strcmp(b, m) < 0) // 如果b比m小,则将b存入m
strcpy(m, b);
if (strcmp(c, m) < 0) // 如果c比m小,则将c存入m
strcpy(m, c);
printf("最小的字符串为:%s\n", m);
return 0;
}
```
程序中用到了字符串比较函数 `strcmp()`,当字符串1小于字符串2时,返回值为负数,当两者相等时返回0,当字符串1大于字符串2时,返回值为正数。
题目:编写程序,从键盘输入3个字符串,分别存入字符数组r,s和t中(数组大小为20),比较字符串大小,将最大字符串存于字符数组m中(数组大小为20)并输出。
要完成这个题目,你可以按照以下步骤编写C语言程序:
1. 定义字符数组 `r`, `s`, `t`, 和 `m`,它们的大小为20个字符,用于存储输入的字符串以及最终的结果。
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 20
char r[MAX_LENGTH], s[MAX_LENGTH], t[MAX_LENGTH], m[MAX_LENGTH];
```
2. 使用 `scanf` 函数从键盘读取三个字符串。
```c
printf("请输入第一个字符串:");
fgets(r, MAX_LENGTH, stdin);
printf("请输入第二个字符串:");
fgets(s, MAX_LENGTH, stdin);
printf("请输入第三个字符串:");
fgets(t, MAX_LENGTH, stdin);
```
注意:使用 `fgets` 可能会导致换行符('\n')进入字符串,所以在比较前可能需要去除换行符。
3. 比较字符串长度并找到最长的字符串。这里我们可以用 `strlen` 函数获取字符串长度,并进行循环遍历。
```c
size_t max_length = 0;
int current_index = 0;
if (strlen(r) > strlen(s)) {
if (strlen(r) > strlen(t)) {
max_length = strlen(r);
strcpy(m, r);
} else {
max_length = strlen(t);
strcpy(m, t);
}
} else {
if (strlen(s) > strlen(t)) {
max_length = strlen(s);
strcpy(m, s);
} else {
max_length = strlen(t);
strcpy(m, t);
}
}
```
4. 最后,打印出最大的字符串。
```c
printf("最长的字符串是:%s\n", m);
```
5. 结合以上代码,完整的程序看起来像这样:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 20
char r[MAX_LENGTH], s[MAX_LENGTH], t[MAX_LENGTH], m[MAX_LENGTH];
int main() {
printf("请输入第一个字符串:");
fgets(r, MAX_LENGTH, stdin);
r[strcspn(r, "\n")] = '\0'; // 去除换行符
printf("请输入第二个字符串:");
fgets(s, MAX_LENGTH, stdin);
s[strcspn(s, "\n")] = '\0';
printf("请输入第三个字符串:");
fgets(t, MAX_LENGTH, stdin);
t[strcspn(t, "\n")] = '\0';
size_t max_length = 0;
int current_index = 0;
if (strlen(r) > strlen(s)) {
if (strlen(r) > strlen(t)) {
max_length = strlen(r);
strcpy(m, r);
} else {
max_length = strlen(t);
strcpy(m, t);
}
} else {
if (strlen(s) > strlen(t)) {
max_length = strlen(s);
strcpy(m, s);
} else {
max_length = strlen(t);
strcpy(m, t);
}
}
printf("最长的字符串是:%s\n", m);
return 0;
}
```
阅读全文