Poslao: 19 Sep 2010 20:24
|
offline
- N1k0l4
- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
Ono sto si prepisao da ne razumes cemu sluzi, nije isto dobro uradjeno
Ideja je da se napusti program kad uneses Q ili q ( skraceno od Quit) a ovde u tvom slucaju se to nikad nece desiti jer petlja kaze "sve dok je sym razlicito od Q ili q tada radi {neki kod} " taj uslov ce uvek biti ispunjen jer ne moze u isto vreme da jedna promenljiva bude i Q i q tako da umesto znaka || treba da stoji && odnosno "i" a ne "ili"
Drugo, jos jedan savet [posto si pocetnik]
r = r + newEntry;
mozes da zamenis sa
r +=newEntry;
to znaci da na r dodas vrednost newEntry i brze se izvrsava nego da se sabere pa tek onda dodeli ( naravno ni ovo nema smisla puno u malim programima, ali cilj ti je da naucis odmah sto efikasniji kod da pises )
Trenutno ne mogu da vidim zbog cega, nije mi tu debugger, ali problem pravi to sto kad treba na kraju petlje da se ucita novi operator on mu dodeli neku vrednost :S, ne znam koju...
dodavanjem jos jednog scanf-a radi kako treba, dakle sa ovim:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int r;
int newEntry;
char sym;
r = 0.0;
printf("\nUpisi znak/operator: ");
scanf("%c", &sym);
while (sym != 'Q' && sym != 'q')// (ovu lajnu sam prepisao iz koda tacno jer bez nje nije htio da nastavlja da racuna.. pa me isto zanima sta ona radi)
{
switch(sym)
{
case 'c':
case 'C':
r = 0.0;
case '+':
printf("Upisi broj: ");
scanf("%d", &newEntry);
r = r + newEntry;
break;
case '-':
printf("Upisi broj: ");
scanf("%d", &newEntry);
r = r - newEntry;
break;
case '*':
printf("Upisi broj: ");
scanf("%d", &newEntry);
r = r * newEntry;
break;
case '/':
printf("Upisi broj: ");
scanf("%d", &newEntry);
if (newEntry == 0)
{
printf("\nNe mozete dijeliti sa nulom.");
newEntry = 1;
}
r = r / newEntry;
break;
default:
printf("\nUpisali ste pogresan znak");
break;
}
printf("\nRezultat = %d", r);
printf("\nUpisi znak/operator: ");
scanf("%c", &sym);
scanf("%c", &sym);
}
}
radi kako treba
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 19 Sep 2010 20:31
|
offline
- clzola
- Građanin
- Pridružio: 10 Mar 2009
- Poruke: 101
- Gde živiš: Podgorica
|
Hvala, sad sam shvatio While komandu ili petlju kako vi to kazete
izvrsavace beskonacno dok se neki uslov ne zadovolji, u ovom slucaju uslov je 'q', tako nesto to dodje
Koji debugger koristis i gde da ga skinem ?? I kako on to radi...
|
|
|
|
Poslao: 19 Sep 2010 20:52
|
offline
- N1k0l4
- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
Debugger koristim samo pod linuxom, ne radim puno u c-u i nemam debugger za win.
Kad sam ti kucao poruku, presao sam bio na linux ali nije mi bio instaliran na ovom racunaru...
Mozda ti neko drugi preporuci debugger za win, ja nisam koristio....
Trebalo bi da visual studio ima svoj debugger...
Ja kad ga koristim najvise ga koristim da pratim vrednosti promenljivama i kuda se program krece po kodu....
|
|
|
|
Poslao: 03 Feb 2012 16:14
|
offline
- deleue
- Novi MyCity građanin
- Pridružio: 31 Jan 2012
- Poruke: 3
|
Ovaj kod kod mene radi ovaj prvi kod u C ++ ali snimljen u C, radi sa milionima. Inače i ja sam apsolutni početnik stigao sam do grafike i nemam instalaciju.
POZDRAV
|
|
|
|
Poslao: 02 Mar 2012 10:35
|
offline
- ljubisacs
- Novi MyCity građanin
- Pridružio: 17 Feb 2012
- Poruke: 7
|
Ja ne znam gde je meni u ovom kodu greska?? Zna li mozda neko
#include <stdio.h>
int main(void)
{
float a,b;
char operacija;
printf("Upisati prvi broj: ");
scanf(" %f",&a);
printf("Upisati drugi broj: ");
scanf(" %f",&b);
printf("Upisati operaciju: zbrajanje(z), oduzimanje(o),\n");
printf(" mnozenje(m),dijeljenje(d) :");
scanf(" %c",&operacija);
switch(operacija){
case z:
printf("%f\n",a+b);
break;
case o:
printf("%f\n",a-b);
break;
case m:
printf("%f\n",a*b);
break;
case d:
printf("%f\n",a/b);
break;
default:
printf("Nedopustena operacija!\n");
}
return 0;
}
|
|
|
|
Poslao: 02 Mar 2012 13:06
|
offline
- N1k0l4
- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
sta dobijas kao gresku u kom delu koda?
u kom koraku pri izvrsavanju?
|
|
|
|
Poslao: 02 Mar 2012 16:40
|
offline
- ljubisacs
- Novi MyCity građanin
- Pridružio: 17 Feb 2012
- Poruke: 7
|
error: 'z' undeclared (first use in the function)
u skoli smo radili slican i radio je
radim u Code::blocks-u
|
|
|
|
Poslao: 02 Mar 2012 19:44
|
offline
- morando
- Građanin
- Pridružio: 19 Maj 2011
- Poruke: 297
|
Zaboravio si da stavis apostrofe/kvote oko konstanti:
char operacija;
switch(operacija)
{
case 'z':
...
case 'o':
...
};
|
|
|
|
|
Poslao: 15 Mar 2012 00:49
|
offline
- whisper
- Građanin
- Pridružio: 08 Avg 2011
- Poruke: 59
|
Ne moguce ja sam isprobao #include <stdio.h>
int main(void)
{
float a,b;
char operacija;
printf("Upisati prvi broj: ");
scanf(" %f",&a);
printf("Upisati drugi broj: ");
scanf(" %f",&b);
printf("Upisati operaciju: zbrajanje(z), oduzimanje(o),\n");
printf(" mnozenje(m),dijeljenje(d) :");
scanf(" %c",&operacija);
switch(operacija){
case 'z':
printf("%f\n",a+b);
break;
case 'o':
printf("%f\n",a-b);
break;
case 'm':
printf("%f\n",a*b);
break;
case 'd':
printf("%f\n",a/b);
break;
default:
printf("Nedopustena operacija!\n");
}
|
|
|
|