Forum » Programiranje » c problem pri zaključevanju programa
c problem pri zaključevanju programa
tadej123321 ::
Živjo!
Spisal sem en simpl programček (domača naloga pač :D) in vse dela kot bi moralo, le ko se program zaključi mi javijo windowsi XP napako. Če ima slučajno kdo kakšno idejo kaj bi znalo biti narobe bi mi prišlo zelo prav;)
No, tukaj je pa moj spisani program:
int main(){
meni();
system("\nPAUSE");
}
Spisal sem en simpl programček (domača naloga pač :D) in vse dela kot bi moralo, le ko se program zaključi mi javijo windowsi XP napako. Če ima slučajno kdo kakšno idejo kaj bi znalo biti narobe bi mi prišlo zelo prav;)
No, tukaj je pa moj spisani program:
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> #define IME 8 #define PRI 12 #define MAX_MIZ 20 #define HODI 4 typedef struct{ char ime[IME]; char priimek[PRI]; int spol; //0...zenska 1...moski :) int starost; int miza; char jedi[HODI][20]; int koda; int nacin_placila; int cena; } oseba; void zakljucek(oseba gost){ int i=0; system("CLS"); printf("Izbrani jedilnik: \n"); while(i<HODI){ printf("\n%d.jed: %s", (i+1), gost.jedi[i]); i++; } printf("\n----------------------------------------------------"); printf("\nKODA NAROCILA: %d", gost.koda); srand (time(NULL)); if (gost.nacin_placila==4) gost.cena=rand() % (5) + 10; else gost.cena=rand() % (5) + 20; printf("\nCENA: %d E\n", gost.cena); } void izpis(oseba gost){ system("CLS"); if(gost.spol==0)printf("Pozdravljena, gospa %s %s", gost.ime, gost.priimek); else printf("Pozdravljen, gospod %s %s", gost.ime, gost.priimek); int i=-1; while ((i>MAX_MIZ)||(i<0)){ printf("\nZa katero mizo zelite jesti? [1...%d]", MAX_MIZ); scanf("%d", &i); } gost.miza=i; system("CLS"); char hod[20]; printf("Prosim povejte kaj boste jedeli:\n"); i=0; while (i<HODI){ printf("%d. hod: ",i+1); scanf("%s",&gost.jedi[i]); i++; } srand (time(NULL)); int koda; gost.koda=rand() % 8999 + 1000; // (max - min) + min unsigned short int x=5; while((x<1)||(x>4)){ system("CLS"); printf("S cim bi zeleli placati?\n"); printf("Moznosti: \n 1. gotovina\n 2. debetna kartica\n 3. kreditna kartica\n 4.studentki bon"); printf("\nIzbira: [1...4]: "); scanf("%d",&x); } gost.nacin_placila=x; zakljucek(gost); system("PAUSE"); } void gost(){ oseba gost; char ime2[IME]; char priimek2[PRI]; printf("Ime:"); scanf("%s", ime2); printf("Priimek:"); scanf("%s", priimek2); strcpy(gost.ime,ime2); strcpy(gost.priimek,priimek2); unsigned short int x=2; while((x!=0)&&(x!=1)){ printf("Spol: Zenska...0 Moski...1: "); scanf("%d",&x); } gost.spol=x; printf("Starost stranke: "); scanf("%d", &gost.starost); izpis(gost); } void meni(){ unsigned short int i=1; while(i!=0){ system("CLS"); printf("Pozdravljeni!"); printf("\nNov gost? [1=da 0=zakljucek dneva]: "); scanf("%d",&i); if(i==1)gost(); else break; //moznost dodajanja funkcij meniju } printf("Program se zapira..."); }
int main(){
meni();
system("\nPAUSE");
}
k--p ::
Sem preiskusil, ker ravno delam nekaj v C, in v win 7 v CodoBlocks IDE (mislim da uporablja gcc compiler) stvar deluje normalno.
tadej123321 ::
Hmmmmm(m)^n... potem se mora pa težava skrivati kje drugje kot v moji kodi:)
sory ker sem ti po nepotrebnem jemal čas;)
sory ker sem ti po nepotrebnem jemal čas;)
Tutankhamun ::
unsigned short int x=2; while((x!=0)&&(x!=1)){ printf("Spol: Zenska...0 Moski...1: "); scanf("%d",&x); } warning: format '%d' expects type 'int *', but argument 2 has type 'short unsigned int '
3 take napake imaš!!!
scanf("%s",&gost.jedi[i]); warning: format '%s' expects type 'char *', but argument 2 has type 'char (*)[20]'
AMD Phenom QUAD 9950 Black Edition, 8GB
Zgodovina sprememb…
- spremenil: Tutankhamun ()
mallard ::
Kar je rekel Tutankhamun. To moraš popravit, ker je tvoj program formalno neveljaven. Lahko se zdi, da dela, lahko se sesuje, lahko napiše kar hoče...
Poleg tega ga ni težko spravit v neskončno zanko. Pa ko sem naročil "1", "2", "3", "4" mi je zaračunal 24 eurov... :)
Poleg tega ga ni težko spravit v neskončno zanko. Pa ko sem naročil "1", "2", "3", "4" mi je zaračunal 24 eurov... :)
springfield ::
Sicer že dolgo nisem delal v C-ju, ampak menda mora int main vrnit 0, da se uspešno zaključi program...na kratko...return 0; ti manjka.
BigWhale ::
springfield je izjavil:
Sicer že dolgo nisem delal v C-ju, ampak menda mora int main vrnit 0, da se uspešno zaključi program...na kratko...return 0; ti manjka.
int main() { return 0; }
Je good ANSI practice, neupostevanje slednjega lahko pripelje do problemov, ni pa nujno.
Po domace povedano, tisti, ki ucijo void main(void) so za skloftat. ;>
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C++] problem z binarnimi datotekamiOddelek: Programiranje | 951 (816) | mallard |
» | C strukture, kazalci naloga pomocOddelek: Programiranje | 1469 (1364) | DavidJ |
» | [NALOGA][C] - Sortiranje učencevOddelek: Programiranje | 1326 (1179) | m4r3 |
» | [C++][Naloga_polja]MIN in MAX polja, izpis za x.100 stevilOddelek: Programiranje | 2944 (2755) | snow |
» | [visual c++] #ifdef _DEBUGOddelek: Programiranje | 1105 (1046) | Vesoljc |