c++本题要求编写程序,读入5个字符串,按由小到大的顺序输出。
时间: 2023-06-01 10:01:32 浏览: 98
#include <stdio.h>
#include <string.h>
int main()
{
char str[5][100]; // 定义一个二维字符数组,存储5个字符串
int i, j;
char temp[100]; // 定义一个临时字符串,用于交换字符串
// 循环读入5个字符串
for(i=0; i<5; i++)
{
printf("请输入第%d个字符串:", i+1);
scanf("%s", str[i]);
}
// 冒泡排序
for(i=0; i<4; i++)
{
for(j=0; j<4-i; j++)
{
if(strcmp(str[j], str[j+1]) > 0)
{
strcpy(temp, str[j]);
strcpy(str[j], str[j+1]);
strcpy(str[j+1], temp);
}
}
}
// 输出排序后的字符串
printf("排序后的字符串为:\n");
for(i=0; i<5; i++)
{
printf("%s\n", str[i]);
}
return 0;
}
相关问题
本题要求编写程序,读入5个字符串,按由小到大的顺序输出。用c++来写
下面是一个C程序的实现,可以读入5个字符串并按由小到大的顺序输出:
```c
#include <stdio.h>
#include <string.h>
// 比较函数,用于排序字符串数组
int cmp(const void* a, const void* b) {
return strcmp(*(const char**)a, *(const char**)b);
}
int main() {
char str[5][100]; // 存储字符串的数组
char* ptr[5]; // 存储指向每个字符串的指针
// 读入字符串
printf("请输入5个字符串:\n");
for (int i = 0; i < 5; i++) {
scanf("%s", str[i]);
ptr[i] = str[i]; // 将指针指向每个字符串
}
// 排序字符串
qsort(ptr, 5, sizeof(char*), cmp);
// 输出排序结果
printf("按由小到大的顺序输出:\n");
for (int i = 0; i < 5; i++) {
printf("%s\n", ptr[i]);
}
return 0;
}
```
在此程序中,我们首先定义了一个二维字符数组`str`来存储输入的字符串,每个字符串的最大长度为100。然后定义了一个一维字符指针数组`ptr`,用于存储指向每个字符串的指针。
接下来,通过一个循环读入5个字符串,并将对应的指针指向每个字符串,以便后续排序使用。
然后,使用`qsort`函数对指针数组`ptr`进行排序,排序的依据是字符串的大小。
最后,再次通过一个循环按顺序输出排序后的字符串。
这样,就能实现读入5个字符串,并按由小到大的顺序输出的功能。
本题要求用c++编写程序,读入5个字符串,按由小到大的顺序输出。
好的,这个问题可以通过下面的程序来解决:
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void sortStrings(char arr[][MAX_LEN], int n);
int main()
{
char arr[5][MAX_LEN];
printf("请输入5个字符串:\n");
for (int i = 0; i < 5; i++) {
scanf("%s", arr[i]);
}
sortStrings(arr, 5);
printf("按照由小到大的顺序输出字符串:\n");
for (int i = 0; i < 5; i++) {
printf("%s\n", arr[i]);
}
return 0;
}
void sortStrings(char arr[][MAX_LEN], int n)
{
char temp[MAX_LEN];
for (int i = 0; i < n-1; i++) {
for (int j = i+1; j < n; j++) {
if (strcmp(arr[i], arr[j]) > 0) {
strcpy(temp, arr[i]);
strcpy(arr[i], arr[j]);
strcpy(arr[j], temp);
}
}
}
}
请注意,以上代码是用C语言编写的,可以接收5个字符串输入,然后按照由小到大的顺序输出这些字符串。
阅读全文