Forum » Programiranje » c napaka .c:4:1: error: expected identifier or '(' before '{' token
c napaka .c:4:1: error: expected identifier or '(' before '{' token
FX6300B ::
imam problem dobim to napako .c:4:1: error: expected identifier or '(' before '{' token koda je pa
bi mi prosim razložili kje je težava
#include <stdio.h> int main(void); { int a; int povp2=1; int povp3=0; while (a!=0) { printf("vnesite celo stevilo\n"); scanf("%d\n", &a); int min; int max; int povp; if (a<min) min=a; if (a>max) max=a; povp3 = a+povp3; povp=povp3/povp2; povp2=povp2+1; printf("min=%d,max=%d,povp=%d", min, max, povp); } return 0; }
bi mi prosim razložili kje je težava
May the force be with you!
- spremenil: FX6300B ()
black ice ::
Podpičje za
PS: Zamikaj kodo.
int main(void);je odveč.
PS: Zamikaj kodo.
Zgodovina sprememb…
- spremenilo: black ice ()
FX6300B ::
hvala saj imam drugače zamaknjeno samo tukaj sem tako prilepil mal možgani ne delajo ok da sm to spregledu
sedaj imam takole pa ne deluje program moram vnesti št kar 2x pa mi kr nekej vn vrže
sedaj imam takole pa ne deluje program moram vnesti št kar 2x pa mi kr nekej vn vrže
#include <stdio.h> int main(void) { int a; int povp2=1; int povp3=0; while (a!=0) { printf("vnesite celo stevilo:\n"); scanf("%d\n", &a); int min; int max; int povp; if (a<min) min=a; if (a>max) max=a; povp3 = a+povp3; povp=povp3/povp2; povp2=povp2+1; printf("min=%d,max=%d,povp=%d\n", min, max, povp); } return 0; }
Zgodovina sprememb…
- spremenil: FX6300B ()
FX6300B ::
tole vn meče
vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 9 min=1,max=9,povp=7 vnesite celo stevilo: 199 min=1,max=9,povp=7 vnesite celo stevilo: 299 min=1,max=199,povp=12 vnesite celo stevilo: 199999999 min=1,max=299,povp=18 vnesite celo stevilo: 199999999 min=1,max=199999999,povp=45454 vnesite celo stevilo:
Zgodovina sprememb…
- spremenil: FX6300B ()
black ice ::
Pojdi vrstico za vrstico skozi program in boš našel par napak. En namig: kako lahko primerjaš dve spremenljivki med sabo, če za eno izmed njih ne veš kakšno vrednost ima?
Mavrik ::
Daj vsaj toliko se potrudi da zamakneš kodo, ker se te tvoje klobase ne da brat.
The truth is rarely pure and never simple.
FX6300B ::
#include <stdio.h> int main(void) { int a; int povp2=1; int povp3=0; while (a!=0) { printf("vnesite celo stevilo:\n"); scanf("%d\n", &a); int min; int max; int povp; if (a<min) min=a; if (a>max) max=a; povp3 = a+povp3; povp=povp3/povp2; povp2=povp2+1; printf("min=%d,max=%d,povp=%d\n", min, max, povp); } return 0; }:D
amacar ::
Daj malo poglej kakšno kodo pišeš.
1. V while zanki testiraš če je a različen od 0, pa mu sploh nisi nastavil nobene vrednosti
2. Primerjaš če je a manjši kot min, pa zopet min nima nastavljene vrednosti. (enako za testiranje z max)
1. V while zanki testiraš če je a različen od 0, pa mu sploh nisi nastavil nobene vrednosti
2. Primerjaš če je a manjši kot min, pa zopet min nima nastavljene vrednosti. (enako za testiranje z max)
FX6300B ::
1. ja v while če je različen od 0 sepravi dokler ne vneseš 0
2. to vem samo če nastavim vrednost nebi delovalo kot je mmišnleno
Sestavi program, ki bere števila, dokler ne vnesemo števila 0. Program naj sproti izpisuje največje število, najmanjše število ter povprečje števil.
Vnesi celo število: 15
min = 15, max = 15, povp = 15
Vnesi celo število: 8
min = 8, max = 15, povp = 11.5
Vnesi celo število: 25
min = 8, max = 25, povp = 16
Vnesi celo število: 13
min = 8, max = 25, povp = 15.25
Vnesi celo število: 0
2. to vem samo če nastavim vrednost nebi delovalo kot je mmišnleno
Sestavi program, ki bere števila, dokler ne vnesemo števila 0. Program naj sproti izpisuje največje število, najmanjše število ter povprečje števil.
Vnesi celo število: 15
min = 15, max = 15, povp = 15
Vnesi celo število: 8
min = 8, max = 15, povp = 11.5
Vnesi celo število: 25
min = 8, max = 25, povp = 16
Vnesi celo število: 13
min = 8, max = 25, povp = 15.25
Vnesi celo število: 0
AndrejO ::
Program, kot si ga spisal, bo samo po naključju in občasno od sebe dal kakšen približek zahtevanega rezultata.
Kot so ti že dvakrat napisali, uporabiti nedoločeno vrednost v kakršnem koli kontekstu je napaka. Tvoj "int a; while (a != 0) { ..." bo tako deloval samo in zgolj po naključju. Občasno tudi ne bo deloval. Če boš svoj izdelek prevedel in pognal z GCC s pravimi zastavicami, ne bo deloval nikoli.
Razmisli in napiši tukaj, kakšna je vrednost spremenljivke "a", potem ko jo deklariraš z "int a;". Takoj v tvoji 6. vrstici.
Potem, ko boš popravil to napako, pa se lahko lotiš še preostalih štirih.
Kot so ti že dvakrat napisali, uporabiti nedoločeno vrednost v kakršnem koli kontekstu je napaka. Tvoj "int a; while (a != 0) { ..." bo tako deloval samo in zgolj po naključju. Občasno tudi ne bo deloval. Če boš svoj izdelek prevedel in pognal z GCC s pravimi zastavicami, ne bo deloval nikoli.
Razmisli in napiši tukaj, kakšna je vrednost spremenljivke "a", potem ko jo deklariraš z "int a;". Takoj v tvoji 6. vrstici.
Potem, ko boš popravil to napako, pa se lahko lotiš še preostalih štirih.
FX6300B ::
sem že rešil problem :D
#include <stdio.h> int main(void) { int a;//ŠTEVILO KI JO VNESE UPORABNIK int stevec=0;//števec vnešenih števil int vsota=0;//vsota vseh vnesenih števil int min; int max; int povp=0; printf("vnesite celo stevilo:"); scanf("%d", &a); max = a; min = a; vsota = a + vsota; povp = a; stevec++; printf("min=%d,max=%d,povp=%d\n", min, max, povp); while (a!=0) { printf("vnesite celo stevilo:"); scanf("%d", &a); if (a<min) min=a; if (a>max) max=a; vsota = a+vsota; povp=vsota/stevec; stevec++; printf("min=%d,max=%d,povp=%d\n", min, max, povp); } return 0; }
Zgodovina sprememb…
- spremenil: FX6300B ()
AndrejO ::
sem že rešil problem :D
OK, ni najbolj elegantno, ampak sedaj imaš pravilno delujoč program. Bravo!
Lahko pa ga poskusiš še polepšati in narediti malo bolj berljivega.
Namigi pa so sledeči:
... while (a != 0) { // Med operatorjem in operandi se prileže presledek. // Koda je pogosto poravnana tako, da je zamaknjena v naslednji // vrstici, po začetnem {. printf("Vnesite celo stevilo: "); ... } ... while (a != 0) { // To je druga možnost poravnave, kjer je pravilo še vedno enako: // zamik v naslednji vrstici. printf("Vnesite celo stevilo: "); ... } ... // Operaciji sta identični, druga pa vsebuje manj ponavljanja. vsota = a + vsota; vsota += a;
Kot bonus pa razmisli kaj storita naslednji dve zanki. Morda ti razmislek odpravi še več
ponavljajoče se kode.
int a; // Trenutna vrednost int s; // Vsota vseh scanf("%d", &a); s = a; while (a != 0) { scanf("%d", &a); s += a; }
int a; int s = 0; while (1) { scanf("%d", &a); if (!a) break; s += a; }
alexa-lol ::
Problema se lahko lotiš tudi z uporabo do while zanke, ki deluje enako s to razliko da se blok kode najprej izvede in šele na koncu preveri pogoj.
http://www.cprogramming.com/tutorial/c/...
To se recimo uporablja če je naloga "Dodajaj števila v polje dokler uporabnik ne vnese števila 0. Ko ga vnese izpiši vsebino polja."
http://www.cprogramming.com/tutorial/c/...
To se recimo uporablja če je naloga "Dodajaj števila v polje dokler uporabnik ne vnese števila 0. Ko ga vnese izpiši vsebino polja."
MrStein ::
Uporabljaj prevajalnik (ali kar jezik), ki opozori na uporabo spremenljivk, ki še nimajo definirane vrednosti. Ti bo prihranilo precej časa.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C] - Spreminjanje programa s pointerjiOddelek: Programiranje | 1186 (938) | DaMachk |
» | naloga ne funkcioniraOddelek: Programiranje | 1445 (1354) | FX6300B |
» | Obratna vrednostOddelek: Programiranje | 1327 (1259) | mgermo |
» | Nemorem rešit ene naloge z c++ (sem začetnik) (strani: 1 2 )Oddelek: Programiranje | 10445 (6183) | technolog |
» | [c] char zadevaOddelek: Programiranje | 2255 (2053) | TheCyborg |