Novo

Forum kao aplikacija na telefonu

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

Terminating process-greška pri izvršavanju programa

  • 9 odgovora
  • 4.312 pregleda

Najnovija ↓

Terminating process-greška pri izvršavanju programa 04.10.2006. u 10:42 · pre 244 meseca #1
Pozdrav svima!
Pitanje
Kad pokrenem program C++ V.5.02 sve radi do momenta kad uđem u DOS i upišem dva broja( najjednostavnije računanje)
izbaci me iz DOS-a i piše mi program terminated.
Imam windows XP home
Što savjetujete?
TNX
Re: Terminating process-greška pri izvršavanju programa 04.10.2006. u 19:15 · pre 244 meseca #3
Kod je jako jednostavan ,tim više mi nije jasno zasto ga nece izvrsiti..

Code:
#include <stdio.h>
#include <math.h>
main()
{
int a,b;
float h,o,p;
printf("Upisi vrijednosti katete jedan i katete 2 - brojeve odvoji zarezom !!\n");
scanf("%d,%d",&a,&b);
h=sqrt(a*a+b*b);
p=(a*b)/2;
o=a+b+h;
printf("Povrsina trokuta je %d . \n Opseg trokuta je %d . \n Hipotenuza je %d .",p,o,h);
}
Re: Terminating process-greška pri izvršavanju programa 04.10.2006. u 21:13 · pre 244 meseca #4
Ne znam koji kompajler koristis, ali ovo kod mene prodje
bez obzira na greske u programu.

main treba da vrati neku vrednost pa mozes
na kraju main f-je da napises retrun 0;
ili
umesto main() napises void main(void)

Kod prikaza promenjivih ne treba da stavis %d konverziju
nego %f.

Ovako:

printf("Povrsina trokuta je %f . \n Opseg trokuta je %f . \n Hipotenuza je %f .",p,o,h);

Ispravi ovo pa javi.
Potpis
Mislim, šta reći !
Re: Terminating process-greška pri izvršavanju programa 04.10.2006. u 21:48 · pre 244 meseca #5
Citat:

umesto main() napises void main(void)

void main(void)
... po novom standardu nije dozvoljeno, iako će ga kompajleri
bez problema progutati.

main() treba uvek da vrati int (return NEŠTO), a argumente može
imati po potrebi.






Re: Terminating process-greška pri izvršavanju programa 04.10.2006. u 22:42 · pre 244 meseca #7
Greska je u ovom delu koda:
Code:

scanf("%d,%d",&a,&b);


Sem konverzija nemoj da stavljas nista za argument scanf funkcije, svaki kompajleri razlicitu odreaguju .. ja koristim Dev C++ i on ignorise ovu gresku,ucita samo jednu varijablu a drugu ignorise,a eto vidis kod tebe terminise program..
Inace po konvenciji main funkcija treba uvek da vraca neku vrednost, ali nije problem ako izostavis to,pojavice se samo upozorenje ali program se izvrsava normalno.
Re: Terminating process-greška pri izvršavanju programa 05.10.2006. u 09:36 · pre 244 meseca #8
Code:
printf("Povrsina trokuta je %d . \n Opseg trokuta je %d . \n Hipotenuza je %d .",p,o,h);

zameni sa
Code:
printf("Povrsina trokuta je %f . \n Opseg trokuta je %f . \n Hipotenuza je %f .",p,o,h);


jer su p, o, i h float tipa a ne int.
Re: Terminating process-greška pri izvršavanju programa 05.10.2006. u 10:04 · pre 244 meseca #9
Code:
scanf("%d,%d",&a,&b);
Ukoliko stavim ovaj kod,program mi se pokrene.
Code:
scanf("%d %d",&a &b);
Ako stavim ovaj kod,ne zeli mi se pokrenit.
Code:
printf("Povrsina trokuta je %f . \n Opseg trokuta je %f . \n Hipotenuza je %f .",p,o,h);
Hvala,to sam ispravio cim sam kopirao kod na forum :)

Ako stavim onaj prvi kod,program se pokrene,ali cim upisem vrijednosti a i b te stisnem enter,program se prekine i pise "Process Terminated".
Re: Terminating process-greška pri izvršavanju programa 05.10.2006. u 13:56 · pre 244 meseca #10
Code:
scanf("%d,%d", &a, &b);

prihvata samo ovakav input:
123,456
nece raditi ako ukucas:
123 456 ili 123, 456

Najsigurnije je da uradis na sledeci nacin:
Code:

int ret;
ret = scanf(" %d , %d", &a, &b); // obrati paznju na razmake u format stringu
if (ret != 2) 
{
 printf("Ulaz nije ispravan");
 return;
}


Funkcija scanf vraca ukupan broj uspesno procitanih formata. U tvom slucaju, treba da vrati 2 uspesno procitana int-a.
Takodje... scanf format string je prilicno mocan i treba malo procitati dokumentaciju kako da ga najbolje iskoristis.
Npr. " %d , %d" znaci... preskoci sve white space (koliko god ih ima), procitaj int, preskoci white space (koliko god ih ima), procitaj zarez (,) , preskoci white space (koliko god ih ima) i procitaj int.

yooyo
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme