c语言歌曲列表顺序表代码
时间: 2023-05-26 07:06:35 浏览: 123
C语言顺序表
以下是一个简单的C语言歌曲列表顺序表的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SONGS 100
typedef struct {
char title[100];
char artist[50];
int year;
} Song;
typedef struct {
Song songs[MAX_SONGS];
int size;
} SongList;
void addSongToList(SongList *list, Song *song) {
if (list->size >= MAX_SONGS) {
printf("Error: Song list is full.\n");
return;
}
list->songs[list->size] = *song;
list->size++;
}
void printSongList(SongList *list) {
printf("Title\t\tArtist\t\tYear\n");
printf("-----------------------------------------------\n");
for (int i=0; i<list->size; i++) {
printf("%s\t\t%s\t\t%d\n", list->songs[i].title, list->songs[i].artist, list->songs[i].year);
}
printf("-----------------------------------------------\n");
}
void sortSongList(SongList *list) {
for (int i=0; i<list->size-1; i++) {
for (int j=0; j<list->size-i-1; j++) {
if (strcmp(list->songs[j].title, list->songs[j+1].title) > 0) {
Song temp = list->songs[j];
list->songs[j] = list->songs[j+1];
list->songs[j+1] = temp;
}
}
}
}
int main() {
SongList playlist;
playlist.size = 0;
Song song1 = {"Imagine", "John Lennon", 1971};
addSongToList(&playlist, &song1);
Song song2 = {"Bohemian Rhapsody", "Queen", 1975};
addSongToList(&playlist, &song2);
Song song3 = {"Like a Rolling Stone", "Bob Dylan", 1965};
addSongToList(&playlist, &song3);
Song song4 = {"Smooth", "Santana", 1999};
addSongToList(&playlist, &song4);
printf("Original song list:\n");
printSongList(&playlist);
sortSongList(&playlist);
printf("Sorted song list:\n");
printSongList(&playlist);
return 0;
}
```
在这个示例中,我们定义了两个结构体类型:`Song`表示单个歌曲,`SongList`表示歌曲列表。
我们使用了一个`addSongToList`方法向列表中添加歌曲,一个`printSongList`方法打印列表中所有歌曲的信息,以及一个`sortSongList`方法对列表中的歌曲按照标题进行排序。
在主函数中,我们创建了一个`SongList`结构体并添加了几首歌曲。然后我们打印了原始的歌曲列表,对该列表进行排序,并再次打印排序后的列表。
这个简单的示例可以用作构建更复杂的歌曲管理系统的基础。
阅读全文