本关任务:编写程序,然用户输入10首歌名,歌名存在一个字符指针数组,然后按字典序进行排序,最后依次输出这些歌名。 注意:为了简化起见,输入的歌名只有一个单词,即歌名中不含空格。
时间: 2024-03-18 09:38:58 浏览: 91
编写程序实现以下功能:从键盘输入十个整数,用冒泡法排序后按从小到大输出
好的,这是一个简单的C语言程序,实现你的需求:
```c
#include <stdio.h>
#include <string.h>
#define MAX_SONG_NUM 10
#define MAX_SONG_NAME_LEN 50
int main()
{
char song_names[MAX_SONG_NUM][MAX_SONG_NAME_LEN]; // 存放歌名的二维字符数组
char *song_ptrs[MAX_SONG_NUM]; // 存放歌名指针的一维字符指针数组
int i, j;
// 输入10首歌名并存入song_names数组中
printf("Please enter 10 song names:\n");
for (i = 0; i < MAX_SONG_NUM; i++) {
scanf("%s", song_names[i]);
}
// 将song_ptrs数组中的元素指向song_names数组中每个字符串的首地址
for (i = 0; i < MAX_SONG_NUM; i++) {
song_ptrs[i] = song_names[i];
}
// 使用冒泡排序对歌名进行排序
for (i = 0; i < MAX_SONG_NUM; i++) {
for (j = i; j < MAX_SONG_NUM; j++) {
if (strcmp(song_ptrs[i], song_ptrs[j]) > 0) {
char *temp = song_ptrs[i];
song_ptrs[i] = song_ptrs[j];
song_ptrs[j] = temp;
}
}
}
// 输出排序后的歌名
printf("The sorted song names are:\n");
for (i = 0; i < MAX_SONG_NUM; i++) {
printf("%s\n", song_ptrs[i]);
}
return 0;
}
```
程序中,我们使用了一个二维字符数组 `song_names` 存放输入的歌名,并使用了一个一维字符指针数组 `song_ptrs` 存放对应的指针。然后,我们使用冒泡排序算法对 `song_ptrs` 进行排序,最后依次输出排序后的歌名。
阅读全文