gpt4 book ai didi

c - 在c中使用结构体和数组

转载 作者:行者123 更新时间:2023-11-30 20:23:15 25 4
gpt4 key购买 nike

这是我需要创建的一个较大程序的一小部分,用于将歌曲及其信息输入数据库。我对使用结构体很陌生,我的教授还没有向我们展示如何将结构体传递到函数中,然后在 main 中使用它们。我也不应该使用指针。编译时遇到很多错误,我不知道从哪里开始。

#include <stdio.h>

typedef struct mp3song_struct {
char title[40];
char artist1[20];
char artist2[20];
char artist3[20];
int datemonth;
int dateday;
int dateyear;
char genre[10];

}mp3song;

void populate(mp3song totalsongs[30]);

int main() {

struct mp3song totalsongs[30];

populate(mp3song totalsongs);


}

void populate(mp3song totalsongs[30]){

int i = 0;

for(i = 0; i < 5; ++i){
printf("Enter song title: \n");
scanf("%c", &totalsongs[i].title);
printf("Enter Artists(If no more than 1 enter \"none\")");
printf("Enter artist: \n");
scanf("%c", &totalsongs[i].artist1);
printf("Enter artist: \n");
scanf("%c", &totalsongs[i].artist2);
printf("Enter artist: \n");
scanf("%c", &totalsongs[i].artist3);
printf("Ente date mm/dd/yyyy\n");
printf("Enter month: \n");
scanf("%d", &totalsongs[i].datemonth);
printf("Enter day: \n");
scanf("%d", &totalsongs[i].dateday);
printf("Enter year: \n");
scanf("%d", &totalsongs[i].dateyear);
printf("Enter genre: \n");
scanf("%c", &totalsongs[i].genre);
}
}

最佳答案

您的代码中有几个问题。您可以声明int populate(struct mp3song, struct mp3song totalsongs[30]);void populate(struct mp3song, struct mp3song totalsongs[30]);因为您没有返回整数。

mp3song 不是数组,因此不能像 &mp3song[i] 那样有下标。事实上填充函数无法接收struct mp3song因为它是一种类型而不是值。所以修改populate功能线int populate(struct mp3song totalsongs[30]);然后替换所有出现的 &mp3song[i]&totalsongs[i]您将能够在数组中获取输入。

关于c - 在c中使用结构体和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36524801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com