关于C语言结构体函数问题,急!!!

关于C语言结构体函数的问题 我只输入a=0,为什么结构体函数中n值无法正常返回?(题目要求直接返回结构体)而且一直报错?希望高手帮我改改程序如下:#include<stdio.h>enum Typ{CABRIO,FAHRRAD,LIMOUSINE,PEDELEC,RASENMAEHER,VAN};struct FahrzeugTyp{ enum Typ typ; int radzahl; enum MTyp{ELEKTRO,BENZIN,OHNE} motor; enum FTyp{OFFEN,GESCHLOSSEN} form; };struct FahrzeugTypinit(enum a) { struct FahrzeugTyp n; if(a==0) n.typ=CABRIO; n.radzahl=4; n.motor=BENZIN; n.form=0; return n; } int main(void) { int a; struct FahrzeugTyp y; printf("Bitte geben Sie die Zahl der Typ尀n"); scanf("%d",&a); y=FahrzeugTypinit(a); printf("%d %d %d %d尀n",y.typ,y.radzahl,y.motor,y.form);}
2026年09月23日 19:01
有1个网友回答
网友(1):

#include
enum Typ {CABRIO,FAHRRAD,LIMOUSINE,PEDELEC,RASENMAEHER,VAN};
struct FahrzeugTyp
{
 enum Typ typ;
 int radzahl;
 enum MTyp {ELEKTRO,BENZIN,OHNE} motor
 enum FTyp {OFFEN,GESCHLOSSEN} form;
};
struct FahrzeugTyp init(enum Typ a)
{
 struct FahrzeugTyp n;
 if(a==0)  n.typ=CABRIO;
 n.radzahl=4;
 n.motor=BENZIN;
 n.form=0;
 return n;
}
int main(void)
{
 int a;
 struct FahrzeugTyp y;
 printf("Bitte geben Sie die Zahl der Typ\n");
 scanf("%d",&a);
 y=init((enum Typ)a);
 printf("%d   %d    %d    %d\n",y.typ,y.radzahl,y.motor,y.form);
 return 0;
}