输入五个城市名字(北京,上海,广州,天津,武汉),运用字符指针数组对一组城市名进行升序排列,并将结果输出
时间: 2023-12-05 11:04:29 浏览: 81
好的,以下是可以实现您的要求的代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char* cities[5] = {"北京", "上海", "广州", "天津", "武汉"};
char* temp;
for(int i = 0; i < 4; i++){
for(int j = i + 1; j < 5; j++){
if(strcmp(cities[i], cities[j]) > 0){
temp = cities[i];
cities[i] = cities[j];
cities[j] = temp;
}
}
}
cout << "升序排列后的城市名为:" << endl;
for(int i = 0; i < 5; i++){
cout << cities[i] << endl;
}
return 0;
}
```
输出结果为:
```
升序排列后的城市名为:
北京
广州
上海
天津
武汉
```
希望可以帮助到您!
相关问题
从键盘输入五个城市名字,运用字符指针数组对一组城市名进行升序排列,并将结果输出
好的,下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_CITY_NUM 5
#define MAX_CITY_NAME_LEN 20
void sort_cities(char *cities[], int num);
int main() {
char cities[MAX_CITY_NUM][MAX_CITY_NAME_LEN];
char *city_ptrs[MAX_CITY_NUM];
// 从键盘输入城市名
printf("请输入 %d 个城市名:\n", MAX_CITY_NUM);
for (int i = 0; i < MAX_CITY_NUM; i++) {
scanf("%s", cities[i]);
city_ptrs[i] = cities[i];
}
// 对城市名进行升序排序
sort_cities(city_ptrs, MAX_CITY_NUM);
// 输出排序结果
printf("城市名升序排序结果:\n");
for (int i = 0; i < MAX_CITY_NUM; i++) {
printf("%s\n", city_ptrs[i]);
}
return 0;
}
void sort_cities(char *cities[], int num) {
char *temp;
for (int i = 0; i < num - 1; i++) {
for (int j = i + 1; j < num; j++) {
if (strcmp(cities[i], cities[j]) > 0) {
temp = cities[i];
cities[i] = cities[j];
cities[j] = temp;
}
}
}
}
```
程序中使用了字符指针数组来存储城市名,通过输入城市名后将其指针存储到指针数组中,然后调用 `sort_cities` 函数对指针数组进行排序,最后输出排序结果。
需要注意的是,由于输入的城市名长度不确定,因此需要定义一个合适的最大长度,避免输入的城市名超出数组范围。此外,在使用 `strcmp` 函数比较城市名大小时,需要使用 `strcmp(cities[i], cities[j]) > 0` 的形式,因为 `strcmp` 函数返回值为 0 时表示两个字符串相等,而不是相等时返回 1。
阅读全文