用c++编写程序,然用户输入10首歌名,歌名存在一个字符指针数组,然后按字典序进行排序,最后依次输出这些歌名。
时间: 2024-03-18 09:38:37 浏览: 152
C语言程序设计-编写函数fun对主程序中用户输入的具有10个数据的数组a按由大到小排序,并在主程序中输出排序结果;
5星 · 资源好评率100%
好的,这是一个简单的程序,以下是代码实现:
```c++
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
const int n = 10;
char* songNames[n]; // 定义字符指针数组
char temp[100]; // 用于暂存输入的歌名
for(int i=0; i<n; i++)
{
cout << "请输入第" << i+1 << "首歌曲名称:";
cin >> temp;
songNames[i] = new char[strlen(temp)+1]; // 为每个歌名动态分配内存
strcpy(songNames[i], temp); // 将输入的歌名复制到数组中
}
// 冒泡排序,按字典序从小到大排序
for(int i=0; i<n-1; i++)
{
for(int j=i+1; j<n; j++)
{
if(strcmp(songNames[i], songNames[j]) > 0)
{
char* t = songNames[i];
songNames[i] = songNames[j];
songNames[j] = t;
}
}
}
// 输出排序后的歌名
cout << "排序后的歌曲列表:" << endl;
for(int i=0; i<n; i++)
{
cout << songNames[i] << endl;
delete[] songNames[i]; // 释放动态分配的内存
}
return 0;
}
```
程序中,首先定义了一个大小为10的字符指针数组 `songNames`,用于存储用户输入的歌名。然后,通过循环输入每首歌曲的名称,并动态分配内存将其存储到 `songNames` 数组中。
接着,使用冒泡排序算法按字典序从小到大排序 `songNames` 数组中的歌名。
最后,循环输出排序后的歌名,并释放动态分配的内存。
希望这个程序能够对您有所帮助!
阅读全文