为什么数据不会保存到结构中?代码的提示部分没问题,但是我无法列出数据结构,它给了我所有项目的空值。 没有错误信息,没有通知,没有。我无法弄清楚它为什么会发生?
#include <stdio.h>
#define MAX_KARAKTER 40
#define MAX_ARUK 30
#define MAX_PARTNEREK 30
#define MAX_SZAMLAK 100
#define MAX_TETELEK 30
struct tetel_adat {
int vonalkod;
int mennyiseg;
};
struct tetel_adat tetelbekeres() {
struct tetel_adat tetel;
printf(" Vonalkod: ");
scanf("%d", &tetel.vonalkod);
printf(" Mennyiseg: ");
scanf("%d", &tetel.mennyiseg);
return tetel;
};
struct tetelek {
struct tetel_adat tetel[MAX_TETELEK];
};
struct tetelek tetelekbekeres(int maxtetel) {
int i; struct tetelek lmk;
for(i=0;i<maxtetel; i++) {
printf(" %d. tetel adatait kerem:\n", i+1);
lmk.tetel[i] = tetelbekeres();
}
return lmk;
};
struct szamla_adat {
int szamlaszam; int partnerkod;
int datum; int tetelekszama;
struct tetelek tetelek;
};
struct szamla_adat szamlabekeres() {
struct szamla_adat szl;
printf(" Szamlaszam (int): ");
scanf("%d", &szl.szamlaszam);
printf(" Partnerkod (int): ");
scanf("%d", &szl.partnerkod);
printf(" Datum (timestamp): ");
scanf("%d", &szl.datum);
do {
printf(" Tetelek szama: ");
scanf("%d", &szl.tetelekszama);
} while (szl.tetelekszama<0 || szl.tetelekszama>MAX_TETELEK);
szl.tetelek=tetelekbekeres(szl.tetelekszama);
return szl;
};
struct szamlak {
struct szamla_adat szamla[MAX_SZAMLAK];
};
struct szamlak szamlakbekerese(int maxdb) {
int i; struct szamlak lsz;
for(i=0;i<maxdb; i++) {
printf("%d. szamla adatait kerem:\n", i+1);
lsz.szamla[i]=szamlabekeres();
}
return lsz;
};
struct partner {
int partnerkod; char nev[MAX_KARAKTER];
char cim[MAX_KARAKTER]; int telefonszam;
};
struct partner partnerbekeres() {
struct partner pr;
printf(" Partnerkodja (int): ");
scanf("%d", &pr.partnerkod);
printf(" Neve (max 40 karakter): ");
scanf("%s", pr.nev);
printf(" Cime (max 40 karakter): ");
scanf("%s", pr.cim);
printf(" Telefonszama (csak szam): ");
scanf("%d", &pr.telefonszam);
return pr;
};
struct partnerek {
struct partner partner[MAX_PARTNEREK];
};
struct partnerek partnerekbekerese(int maxdb) {
int i; struct partnerek lp;
for(i=0;i<maxdb;i++) {
printf("%d. partner adatait kerem:\n", i+1);
lp.partner[i]=partnerbekeres();
}
return lp;
};
struct aru {
int vonalkod; char leiras[MAX_KARAKTER];
int ar; int keszlet;
};
struct aru arubekeres() {
struct aru la;
printf(" Vonalkodja (int): ");
scanf("%d", &la.vonalkod);
printf(" Leirasa (max 40 karakter): ");
scanf("%s", la.leiras);
printf(" Ara (Ft): ");
scanf("%d", &la.ar);
printf(" Keszlet (db): ");
scanf("%d", &la.keszlet);
printf("\n");
return la;
};
struct aruk {
struct aru aru[MAX_ARUK];
};
struct aruk arukbekeres(int maxdb) {
int i;struct aruk lak;
for(i=0;i<maxdb;i++) {
printf("%d. aru:\n", i+1);
lak.aru[i]=arubekeres();
}
return lak;
};
struct raktar {
int max_aru; int max_partner;
int max_szamla;
struct aruk aruk;
struct partnerek partnerek;
struct szamlak szamlak;
};
struct raktar raktarbekero() {
struct raktar raktar;
int j=0;
do {
if(j) printf("A szamnak 0 es %d koze kell esnie!\n", MAX_ARUK);
printf("Hany arut szeretnenk feltolteni? ");
scanf("%d", &raktar.max_aru); j++;
} while(raktar.max_aru<0 || raktar.max_aru>MAX_ARUK);
raktar.aruk=arukbekeres(raktar.max_aru);
j=0;
do {
if(j) printf("A szamnak 0 es %d koze kell esnie!\n", MAX_PARTNEREK);
printf("\nHany partnert szeretnenk feltolteni? ");
scanf("%d", &raktar.max_partner); j++;
} while(raktar.max_partner<0 || raktar.max_partner>MAX_PARTNEREK);
raktar.partnerek=partnerekbekerese(raktar.max_partner);
j=0;
do {
if(j) printf("A szamnak 0 es %d koze kell esnie\n", MAX_SZAMLAK);
printf("\nHany szamlat szeretnenk feltolteni? ");
scanf("%d", &raktar.max_szamla); j++;
} while(raktar.max_szamla<0 || raktar.max_szamla>MAX_SZAMLAK);
raktar.szamlak=szamlakbekerese(raktar.max_szamla);
};
/* PROGRAM KILISTAZO RESZE */
void tetelkiiratas(struct tetel_adat tetel) {
printf("\t Vonalkod: %d\n", tetel.vonalkod);
printf("\n Mennyiseg: %d\n", tetel.mennyiseg);
}
void tetelekkiiratas(struct tetelek tetelek, int maxdb) {
int i; for(i=0;i<maxdb;i++) tetelkiiratas(tetelek.tetel[i]);
}
void szamlakiiratas(struct szamla_adat szamla) {
printf("%d. szamu szamla adatai:\n", szamla.szamlaszam);
printf(" Partnerkod: %d\n", szamla.partnerkod);
printf(" Datum: %d\n", szamla.datum);
printf(" Tetelek:\n");
tetelekkiiratas(szamla.tetelek, szamla.tetelekszama);
}
void szamlakkiiratas(struct szamlak szamlak, int maxdb) {
int i; for(i=0;i<maxdb; i++) szamlakiiratas(szamlak.szamla[i]);
}
void partnerkiiratas(struct partner partner) {
printf("%d. kodu partner adatai:\n", partner.partnerkod);
printf(" Neve: %s\n", partner.nev);
printf(" Cime: %s\n", partner.cim);
printf(" Telefonszama: %d\n", partner.telefonszam);
}
void partnerekkiiratas(struct partnerek partnerek, int maxdb) {
int i; for(i=0;i<maxdb;i++) partnerkiiratas(partnerek.partner[i]);
}
void arukiiratas(struct aru aru) {
printf("%d kodu aru adatai:\n", aru.vonalkod);
printf(" Leirasa: %s\n", aru.leiras);
printf(" Ara: %d,-\n", aru.ar);
printf(" Keszlet: %d (db)\n", aru.keszlet);
}
void arukkiiratas(struct aruk aruk, int maxdb) {
int i; for(i=0;i<maxdb;i++) arukiiratas(aruk.aru[i]);
}
void raktarkiiro(struct raktar raktar) {
printf("\nARUK KILISTAZASA (%d): \n", raktar.max_aru);
arukkiiratas(raktar.aruk, raktar.max_aru);
printf("\nPARTNEREK KILISTAZASA: \n");
partnerekkiiratas(raktar.partnerek, raktar.max_partner);
printf("\nSZAMLAK KILISTAZASA: \n");
szamlakkiiratas(raktar.szamlak, raktar.max_szamla);
}
/* --------------------------------------------------- */
int main() {
struct raktar raktar;
raktar = raktarbekero();
raktarkiiro(raktar);
return 0;
}
答案 0 :(得分:0)
您没有看到编译器警告吗?
'raktarbekero' : must return a value.
您使用其返回值
int main() {
struct raktar raktar;
raktar = raktarbekero();
raktarkiiro(raktar);
return 0;
}
因此程序无法正常运行。