Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 3.267 pregleda

Najnovija ↓

imam jedan mali problem 12.07.2006. u 01:42 · pre 247 meseci #1
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;
}
}
}
]
Potpis
nuki***
Re: imam jedan mali problem 12.07.2006. u 14:01 · pre 247 meseci #2
imas dosta greska sa zagradama '{}' i ';' ,ispravi to za sad. nisam te dobro razumeo koj je tvoj problem. u koju listu hoces de smestis strukturu, jer hoces da pridruzis imena strukturnim tipovima? objasni mi problem ili jos bolje posalji mi zadatak pa kad ga budem uradio poslacu ti ga.
Potpis
dume
Re: imam jedan mali problem 12.07.2006. u 16:51 · pre 247 meseci #3
Ne nema ni jedne greske s {} i ; jedino na početku koda ima nepotrebna zagrada [ također i na kraju ] nemam pojma ni odakle ih.
Problem je u ovome
struct student {
char ime[20];
float ocjena; //broj s decimalnom točkom
struct student *veza;
} *glava=NULL;
Ja kompajliram i bildujem program i nema ni jedne greške ali kada unosim u program ocjenu s decimalnom točkom recimo 2,3 onda mi samo prekine rad programa i izbaci upozorenje dubug error i runtime error.

Kada imam ocjenu kao cjeli broj int ocjena;
Na primjer.

struct student {
char ime[20];
int ocjena; //cjeli broj
struct student *veza;
} *glava=NULL;


onda sve radi ok (naravno i u codu programa promjeni se unos ocjene iz scanf("%f",&novi->ocjena); u scanf("%d",&novi->ocjena);.).

Znači problem je u tome što neće nikako da mi program unosi brojeve s decimalnom točkom (čim unesem broj program se prekida), ali kada unosim cjeli broj sve je ok.
Ajd oprobaj ti u sebe pa vidi ima li ikakvo rjesenje.
P.S dodam i funkciju za ispis i sve ispisuje normalno kada je int ocjena


Potpis
nuki***
Re: imam jedan mali problem 18.07.2006. u 17:23 · pre 247 meseci #4
Uvijek stavljaj kode izmedju code tagova i tako da neces imati problema sa prikazom koda na forumu.
Citat:
ali kada unosim u program ocjenu s decimalnom točkom recimo 2,3 ...

Ti si napisao 2,3 sa zarezom a ne sa tackom, mozda je u ovome problem, ako uneses zarez to ce biti dodjela pogresnog tipa (kao da dodjeljujes char) i to bi objasnjavalo runtime error. Dakle stavi na 2.3 umjesto 2,3
Re: imam jedan mali problem 20.07.2006. u 20:26 · pre 246 meseci #5
Nije u tome problem, unosim decimalne brojeve s točkom ali hvala na pokusaju.
Ima li itko ideju u čemu je problem, aajjjjjjjjjjjjjjjjjjde ljudi daj molim vas oprobajte rjesiti to.
Potpis
nuki***
Re: imam jedan mali problem 23.07.2006. u 18:57 · pre 246 meseci #6
Interesting....

Code:
printf("\n\nunesite ocjenu studentu:");
scanf("%f",&novi->ocjena);
printf("\n\n%f",novi->ocjena);



Ovako prolazi.... hm?!
Potpis
"So many people seem to see the word "error" and then stop... few seem to actually read the words on the OTHER side of the colon."
- Chris Phillips from the mplayer-users mailing list
Re: imam jedan mali problem 26.07.2006. u 17:34 · pre 246 meseci #7
E hvala ti, sada radi.
Najgolemije od toga je to što prije ono moje nije radilo a sada kada sam unio tvoj kod proradilo je ono tvoje, i kada sam opet vratio na svoje proradilo i moje. ČUDNO
Hvala jos jedanput mikson
Potpis
nuki***
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme