Forum » Programiranje » [C] preprost program
[C] preprost program
pitagora ::
Napisati moram program ki s pritiskom na p poveca stevilo na m zmanjsa na x pa konca program!
sedaj sem se pa nekaj mucil???
void main()
{
int stevilo;
char znaki[] = "pmx";
printf("Vpisi stevilo: \n");
scanf("%d", &stevilo);
printf("Za povecanje stevila pritisni p: ");
gets(znaki);
stevilo++;
getch();
}
ko pritisnem p mi napise inactive.....in konec
pa bi prosil da nujno ce kdo ve da mi pomaga,..
LP
[edit - očitno gre za C program - vsc]
sedaj sem se pa nekaj mucil???
void main()
{
int stevilo;
char znaki[] = "pmx";
printf("Vpisi stevilo: \n");
scanf("%d", &stevilo);
printf("Za povecanje stevila pritisni p: ");
gets(znaki);
stevilo++;
getch();
}
ko pritisnem p mi napise inactive.....in konec
pa bi prosil da nujno ce kdo ve da mi pomaga,..
LP
[edit - očitno gre za C program - vsc]
- spremenil: Vesoljc ()
Vesoljc ::
#include <iostream> using namespace std; int main() { char znak; int stevilo; cout << "Vpisi stevilo: "; cin >> stevilo; while (1) { cout << "Vrednost stevila = " << stevilo << endl; cout << "Vpisi znak (p->plus, m->minus, x->izhod): "; cin >> znak; if (znak == 'p') stevilo++; else if (znak == 'm') stevilo--; else if (znak == 'x') break; else cout << "p, m ali x!" << endl; } system("PAUSE"); }
optimizirano za dev cpp. ni pa čist bulletproof
probaj vnesti "pp"
hmm, zakaj je že temu tako?
Abnormal behavior of abnormal brain makes me normal...
pitagora ::
if (znak == 'p')
stevilo++;
else if (znak == 'm')
stevilo--;
else if (znak == 'x')
break;
else
to sem pa cisto spregledal, HVALA!
pa == tudi!
ah dost si mi pomagal TNX AGAIN.
caw
stevilo++;
else if (znak == 'm')
stevilo--;
else if (znak == 'x')
break;
else
to sem pa cisto spregledal, HVALA!
pa == tudi!
ah dost si mi pomagal TNX AGAIN.
caw
pitagora ::
#include stdio.h
#include conio.h
#include string.h
void main()
{
char znak[] = "p, m, x";
int stevilo;
printf("Vpisi stevilo: \n");
scanf("%d", &stevilo);
while(1)
{
printf("Vrednost stevila je: %d\n", stevilo);
printf("Vpisi znak p-poveca, m-zmanjsa, x-konca: ");
scanf("%c\n", &znak);
if(znak == "p")
stevilo++;
else if(znak == "m")
stevilo--;
else if(znak == "x")
break;
else
printf("Vpisi p m ali x: ");
}
getch();
}
V if zanko mi sploh ne gre Zakaj?
lp
#include conio.h
#include string.h
void main()
{
char znak[] = "p, m, x";
int stevilo;
printf("Vpisi stevilo: \n");
scanf("%d", &stevilo);
while(1)
{
printf("Vrednost stevila je: %d\n", stevilo);
printf("Vpisi znak p-poveca, m-zmanjsa, x-konca: ");
scanf("%c\n", &znak);
if(znak == "p")
stevilo++;
else if(znak == "m")
stevilo--;
else if(znak == "x")
break;
else
printf("Vpisi p m ali x: ");
}
getch();
}
V if zanko mi sploh ne gre Zakaj?
lp
Gundolf ::
Zato ker imas znak definiran kot char[], beres ga pa kot char. Spremeni definicijo v char znak; Potem pa se spremeni primerjanja iz if(znak == "p") v if(znak == 'p'). To bi tako na pa pamet receno moralo delovati.
pitagora ::
char znak;
int stevilo;
printf("Vpisi stevilo: \n");
scanf("%d", &stevilo);
while(1)
{
printf("Vrednost stevila je: %d\n", stevilo);
printf("Vpisi znak p-poveca, m-zmanjsa, x-konca: ");
scanf("%c\n", &znak);
if(znak == "p")
stevilo++;
else if(znak == "m")
stevilo--;
else if(znak == "x")
break;
else;
ce je napisano takole mi pa javi cannot convert ´char´ to´ char*´....
ce dam enojne narekovaje mi javi napake,
char znak;= je to dovolj?
lp
int stevilo;
printf("Vpisi stevilo: \n");
scanf("%d", &stevilo);
while(1)
{
printf("Vrednost stevila je: %d\n", stevilo);
printf("Vpisi znak p-poveca, m-zmanjsa, x-konca: ");
scanf("%c\n", &znak);
if(znak == "p")
stevilo++;
else if(znak == "m")
stevilo--;
else if(znak == "x")
break;
else;
ce je napisano takole mi pa javi cannot convert ´char´ to´ char*´....
ce dam enojne narekovaje mi javi napake,
char znak;= je to dovolj?
lp
Gundolf ::
Enojni narekovaji morajo biti. To zato ker enojni narekovaji se uporablajo pri tipu char in sicer tako da je v narekovajih vedno le en znak ('a', 'b', '1', '2', '\n', '\t', nikakor pa ne 'ab', '154', ...). Dvojni narekovaji predstavljajo niz znakov ("a", "ab", "abrakadabra", ...) in zato jih lahko primerjas in assignas samo spremenljivkam tipa char* in char[], ne pa tudi char. Enega znaka se ne da primerjati z nizom znakov. Torej zamenjaj dvojne narekovaje z enojnimi. Ne vidim razloga da bi ti to javilo kakrsnokoli napako. Zdajsnja je ravno zaradi narekovajev.
Kar pa se tice initializacije:
cannot convert ´char´ to´ char*Compiler bi namrec rad pretvoril obe spremenljivki (znak, "p") v isti tip, da bi ju lahko primerjal.
Kar pa se tice initializacije:
char znak;= je to dovolj?Sprmenljivke ni treba initializirati, ker jo tako ali tako preberes iz vhoda. Kakrsnokoli vrednost bi ji ze dolocil (char znak = '?';), bi jo vedno prepisal v scanf koraku, tako da to je v redu.
pitagora ::
Evo se enkrat:
enojni oklepaji so rdeci!!!!! ZAKAJ
in pa undefined symbol mi javi za p, m, x,!!!!
lp
#include <stdio.h> #include <conio.h> #include <string.h> void main() { char znak; int stevilo; printf("Vpisi stevilo: \n"); scanf("%d", &stevilo); while(1) { printf("Vrednost stevila je: %d\n", stevilo); printf("Vpisi znak p-poveca, m-zmanjsa, x-konca: "); scanf("%c\n", &znak); { if(znak==´p´) stevilo++; else if(znak ==´m´) stevilo--; else if(znak==´x´) break; else; } printf("Vpisi p m ali x: "); } getch(); }
enojni oklepaji so rdeci!!!!! ZAKAJ
in pa undefined symbol mi javi za p, m, x,!!!!
lp
Zgodovina sprememb…
- spremenil: Vesoljc ()
Gundolf ::
To kar ti uporabljas ocitno niso enojni narekovaji. Poglej razliko: ('´). Ce imas nastavljeno slovensko tipkovnico potem so enojni narekovaji na isti tipki kot "?". Ce pa imas amerisko so na isti tipki kot dvojni narekovaji.
Naslednjic raje copy-paste-aj cel error.
Naslednjic raje copy-paste-aj cel error.
pitagora ::
A je mogoce da tipkovnica nima enojnega narkovaja ma vem da se slisi smesno samo ne najdem ga pa da se ....
kako to
aja potem "dela" program, samo moram dvakrat pritisniti tipko p za povecanje in enako za m zmanjsanje zakaj?
kako to
aja potem "dela" program, samo moram dvakrat pritisniti tipko p za povecanje in enako za m zmanjsanje zakaj?
Gundolf ::
Saj sem ti povedal kje najdes enojni narekovaj :)
Drugace pa se mi zdi da bi moralo to delovati tako da pritisnes tipko in nato enter.
Sicer se ne spoznam na C-jevsko branje iz tipkovnice a mislim da bi namesto scanf-a uporabil nekaj podobnega temu: znak = getch(); Nisem pa siguren o imenu te funkcije, morda sem se zmotil, pa tudi nekaj variant obstaja, tako da sam poskusi najti pravo.
Drugace pa se mi zdi da bi moralo to delovati tako da pritisnes tipko in nato enter.
Sicer se ne spoznam na C-jevsko branje iz tipkovnice a mislim da bi namesto scanf-a uporabil nekaj podobnega temu: znak = getch(); Nisem pa siguren o imenu te funkcije, morda sem se zmotil, pa tudi nekaj variant obstaja, tako da sam poskusi najti pravo.
CCfly ::
NAME
fgetc, fgets, getc, getchar, gets, ungetc - input of characters and
strings
SYNOPSIS
DESCRIPTION
fgetc() reads the next character from stream and returns it as an
unsigned char cast to an int, or EOF on end of file or error.
[edit - syntax error - vsc]
fgetc, fgets, getc, getchar, gets, ungetc - input of characters and
strings
SYNOPSIS
#include <stdio.h> int fgetc(FILE *stream); char *fgets(char *s, int size, FILE *stream); int getc(FILE *stream); int getchar(void); char *gets(char *s); int ungetc(int c, FILE *stream);
DESCRIPTION
fgetc() reads the next character from stream and returns it as an
unsigned char cast to an int, or EOF on end of file or error.
[edit - syntax error - vsc]
Zgodovina sprememb…
- spremenil: Vesoljc ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | KalkulatorOddelek: Programiranje | 1328 (1095) | lebdim |
» | [c++] problem: pretvorba iz malih v velike crkeOddelek: Programiranje | 2136 (1783) | Makina |
» | [C++] - Tolmačenje povedi in izvedba operacij nad števkamiOddelek: Programiranje | 3351 (2587) | jernejl |
» | [C++][Naloga] Tekstovne datoteke, realna številaOddelek: Programiranje | 4052 (3668) | Gundolf |
» | čitanje črkOddelek: Programiranje | 1552 (1421) | BigWhale |