[ petar karacic @ 12.07.2006. 00:42 ] @
Imam jedan problem. Kada dodajem novu strukturu u listu nikako neće da mi se unese decimalni broj float. U ovom slucaju čim unesem neki broj pojavljiva mi se dobug error. Evo vam citav algoritam pa vi to pogledajte, mislim da je problem u funkciji void dodaj() i to 8 linija koda (scanf("%f",&novi->ocjena); ) ali za svaki slucaj. Bio bih zahvalan kada bi netko znao u čemu mi je problem unaprjed hvala. [#include<stdio.h> #include<string.h> #include<malloc.h> struct student { char ime[20]; float ocjena; struct student *veza; } *glava=NULL; void dodaj(); void main(){ char izbor; do{ printf("izaberite\n"); printf("a) dodavanje nove liste\n"); printf("d) izlaz iz programa\n\n\n"); fflush(stdin); scanf("%c",&izbor); switch(izbor){ case 'a':{ dodaj(); break; } case 'd':{ break; } default:{ printf("\n\n\nPogresan izbor! Pokusaj ponovo!\n\n\n"); break; } } } while(izbor!='d'); } void dodaj(){ struct student *novi, *pom, *pred; novi=(struct student*)malloc(sizeof(struct student)); printf("\n\n\nunesite podatke o studentu:\n\n\n"); printf("unesite ime studenta:"); fflush(stdin); gets(novi->ime); printf("\n\nunesite ocjenu studentu:"); scanf("%f",&novi->ocjena); printf("\n\n"); if(glava==NULL){ glava=novi; novi->veza=NULL; } else{ pom=glava; while(pom!=NULL){ if(strcmp(pom->ime,novi->ime)>0){ if(pom==glava){ novi->veza=glava; glava=novi; break; } else{ pred->veza=novi; novi->veza=pom; break; } } else{ if(pom->veza==NULL){ pom->veza=novi; novi->veza=NULL; } } pred=pom; pom=pom->veza; } } } ] |