Forum » Programiranje » naloga ne funkcionira
naloga ne funkcionira
FX6300B ::
prosim pomagajte sem se čisto izgubil
bi moralo biti tako Vnesi a: 3672
Vnesi b: 624
3672 = 5 * 624 + 552
624 = 1 * 552 + 72
552 = 7 * 72 + 48
72 = 1 * 48 + 24
48 = 2 * 24 + 0
Najvecji skupni delitelj stevil 3672 in 624 je 24.
#include <stdio.h> int a; int b; int deljitelj; int krat; int ostanek; int vsota; int main(void) { printf("vnesi a:\n"); scanf("%d", &a); printf("vnesi b:\n"); scanf("%d", &b); vsota = a; deljitelj = b; while (ostanek > 0) { krat = a/b; ostanek = vsota%deljitelj; printf("%d = %d * %d + %d\n", vsota, krat, deljitelj, ostanek); vsota = deljitelj; if (ostanek>0) { deljitelj = ostanek; } } printf("\nnajvecji skupni deljitelj je %d", deljitelj); return 0; }
bi moralo biti tako Vnesi a: 3672
Vnesi b: 624
3672 = 5 * 624 + 552
624 = 1 * 552 + 72
552 = 7 * 72 + 48
72 = 1 * 48 + 24
48 = 2 * 24 + 0
Najvecji skupni delitelj stevil 3672 in 624 je 24.
amacar ::
Ka ti bereš sploh kaj ti mi pišemo?
Že v prejšnji temi smo ti povedali, da moraš na začetku spremenljivke inicializirati.
Program ti seveda ne dela, ker imaš v pogoju napisano
Če boš nastavil
Že v prejšnji temi smo ti povedali, da moraš na začetku spremenljivke inicializirati.
Program ti seveda ne dela, ker imaš v pogoju napisano
while (ostanek > 0), ti pa seveda na začetku ostanka nisi na nič nastavil, tako da ga program ne more primerjati.
Če boš nastavil
int ostanek=1;ti bo šel program lepo skoz.
FX6300B ::
sej gre drugače je pa int potrebno dati samo če dodaš spremenljivko ne pa če ji spremeniš vrednost drugače pa ni taka napaka napaka je pri formuli ker tudi če dodam mi narobno št ven vrže
Zgodovina sprememb…
- spremenil: FX6300B ()
amacar ::
OMG, ti sploh veš kaj je inicializacija? Ne moreš kr povprek primerjati in deliti spremenljivk, katerim še nisi nastavil vrednosti. Prav tako ne ustvarjaj globalnih spremenljivk, če jih ne potrebuješ.
In ja, če dodaš to kar sem ti zgoraj napisal program deluje: http://ideone.com/aoBLCd
In ja, če dodaš to kar sem ti zgoraj napisal program deluje: http://ideone.com/aoBLCd
#include <stdio.h> int a; int b; int deljitelj; int krat; int ostanek=1; int vsota; int main(void) { printf("vnesi a:\n"); scanf("%d", &a); printf("vnesi b:\n"); scanf("%d", &b); vsota = a; deljitelj = b; while (ostanek > 0) { krat = a/b; ostanek = vsota%deljitelj; printf("%d = %d * %d + %d\n", vsota, krat, deljitelj, ostanek); vsota = deljitelj; if (ostanek>0) { deljitelj = ostanek; } } printf("\nnajvecji skupni deljitelj je %d", deljitelj); return 0; }
FX6300B ::
prav bom sam pogruntal drugače pa šeenkrat preberi kodo pa boš VIDEL da imajo vse spremenljivke DEFINIRANO vrednost ti pol prlepm
bi moralo biti tako Vnesi a: 3672
Vnesi b: 624
3672 = 5 * 624 + 552
624 = 1 * 552 + 72
552 = 7 * 72 + 48
72 = 1 * 48 + 24
48 = 2 * 24 + 0
Najvecji skupni delitelj stevil 3672 in 624 je 24.
Zgodovina sprememb…
- spremenil: FX6300B ()
amacar ::
Zberi se, pa beri počasi. Sedaj si prišel do tega linka: http://ideone.com/aoBLCd Klikni nanj in spodaj boš imel natanko tak izpis, ki si ga želiš, zgoraj pa je koda programa, ki deluje.
Sedaj pa poglejmo tvojo kodo
Sedaj pa poglejmo tvojo kodo
#include <stdio.h> int a; int b; int deljitelj; int krat; int ostanek; // Ustvaril si spremenljivko ostanek, ki še nima nastavljene vrednosti (čeprav je verjetno nastavljena na 0, ampak ne boš imel vedno takšne sreče). int vsota; int main(void) { printf("vnesi a:\n"); scanf("%d", &a); printf("vnesi b:\n"); scanf("%d", &b); vsota = a; deljitelj = b; while (ostanek > 0) // Tu preverjaš, če je spremenljivka ostanek večja od 0, a spremenljivki ostanek sploh še nisi nastavil nobene vrednosti (beri prejšnji komentar)!
pitbull1336 ::
#include <stdio.h> int fun(int a, int b) { if (b == 0) { return a; } return fun(b, a % b); } int main(void) { int a; int b; printf("vnesi a:\n"); scanf_s("%d", &a); printf("vnesi b:\n"); scanf_s("%d", &b); printf("\nnajvecji skupni deljitelj je %d\n", fun(a, b)); return 0; }
FX6300B ::
nerazumem
zakaj mora biti 1 če pravo št dobi ko mu pride ta ukaz ostanek = vsota%deljitelj;
zakaj mora biti 1 če pravo št dobi ko mu pride ta ukaz ostanek = vsota%deljitelj;
eatinggrin ::
O madona ti pa si lesen.
Ne vidiš da mu tisti ukaz nikoli "ne pride", ker ne izpolnjuje pogoja?
Ne vidiš da mu tisti ukaz nikoli "ne pride", ker ne izpolnjuje pogoja?
FX6300B ::
aja
hvala vsem pitbull: zdaj vidim kako se tudi da samo še nisem tam ker delam po http://zaversnik.fmf.uni-lj.si/Gradiva/...
hvala vsem pitbull: zdaj vidim kako se tudi da samo še nisem tam ker delam po http://zaversnik.fmf.uni-lj.si/Gradiva/...
Zgodovina sprememb…
- spremenil: FX6300B ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C] - Spreminjanje programa s pointerjiOddelek: Programiranje | 1173 (925) | DaMachk |
» | C programiranje (strani: 1 2 3 )Oddelek: Programiranje | 27704 (18000) | amacar |
» | C in računanje kotovOddelek: Programiranje | 6581 (5634) | RatedR |
» | c napaka .c:4:1: error: expected identifier or '(' before '{' tokenOddelek: Programiranje | 1932 (1505) | MrStein |
» | [c] char zadevaOddelek: Programiranje | 2249 (2047) | TheCyborg |