Forum » Programiranje » Povečevanje števil [C]
Povečevanje števil [C]
RatedR ::
Lp, imam manjšo težavo s sicer lahko nalogo, sam nevem kako jo rešit
Napisat moram program, ki povečuje vrednost spremenljivke za 1 ko uporabnik pritisne tipko 'p', in zmanjša za 1 ko pritisne 'm', zraven se pa prikaže vrednost ob vsakem pritisku.
Ko se uporabnik odloči da bo nehal pritiskat 'p' ali 'm' lahko pritisne 'x' da se izpiše končna vrednost.
Torej jaz si to predstavljam tako nekak:
Stvar v neskončno zanko, rabim sam neko osnovno idejo kako naredit da mi ne gre v neskončno zanko.
Hvala!
Napisat moram program, ki povečuje vrednost spremenljivke za 1 ko uporabnik pritisne tipko 'p', in zmanjša za 1 ko pritisne 'm', zraven se pa prikaže vrednost ob vsakem pritisku.
Ko se uporabnik odloči da bo nehal pritiskat 'p' ali 'm' lahko pritisne 'x' da se izpiše končna vrednost.
Torej jaz si to predstavljam tako nekak:
#include<stdio.h> int main(void) { printf("Pritisnite 'p', da povecate stevilo\n"); printf("Pritisnite 'm', da zmanjsate stevilo\n"); printf("Pritisnite 'x', za konec programa\n\n"); int iVrednost = 1; char cVnos; scanf("%c", &cVnos); while(cVnos == 'p') { iVrednost = iVrednost + 1; printf("%d", iVrednost); } while(cVnos == 'm') { iVrednost = iVrednost - 1; printf("%d", iVrednost); } if(cVnos == 'x') { printf("%d", iVrednost); return 0; } if(!(cVnos == 'c' && cVnos == 'm' && cVnos == 'x')) { printf("Napacen vnos!"); } getch(); }
Stvar v neskončno zanko, rabim sam neko osnovno idejo kako naredit da mi ne gre v neskončno zanko.
Hvala!
- spremenilo: RatedR ()
Randomness ::
Rabiš samo eno zanko, znotraj katere kličeš scanf. Pri tem pazi, da scanf prebere le en znak, ampak šele po pritisku tipke ENTER.
RatedR ::
Randomness je izjavil:
Rabiš samo eno zanko, znotraj katere kličeš scanf. Pri tem pazi, da scanf prebere le en znak, ampak šele po pritisku tipke ENTER.
Ne razumem čist, sepravi eno while zanko sam kakšnen je pa pogoj pa kje preverjam kaj je uporabnik pritisnil?
Problem mam samo s tem delom:
int iVrednost = 1; char cVnos; scanf("%c", &cVnos); while(cVnos == 'p') { iVrednost = iVrednost + 1; printf("%d", iVrednost); } while(cVnos == 'm') { iVrednost = iVrednost - 1; printf("%d", iVrednost); }
Randomness ::
Problem mam samo s tem delomNe, problem imaš z razumevanjem osnov. Sem že zgoraj napisal, da mora biti klic scanf - to je branje s standardnega vhoda - znotraj zanke. Mogoče te mede to, da želiš izvesti branje pred preverjanjem pogoja, če pa boš prestavil branje v zanko, potem se bo pogoj preveril še preden bo uporabnik pritisnil tipko ... V tem primeru bi bilo to res, vendar se to zaobide na različne načine. Eden izmed njih je ta, da while {} zanko spremeniš v do {} while zanko. Npr.
do { scanf("%c", &cVnos); // pazi: tukaj preberemo le en znak (znak za novo vrstico se bo prebral šele v naslednji iteraciji zanke) if (cVnos == 'p') ... else if (cVnos == 'm') ... else if ... } while (cVnos != 'x');
Zgodovina sprememb…
- spremenilo: Randomness ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Neznan problem [C]Oddelek: Programiranje | 2706 (2417) | Snackbarru |
» | c napaka .c:4:1: error: expected identifier or '(' before '{' tokenOddelek: Programiranje | 1930 (1503) | MrStein |
» | [C] kazalčni seznamOddelek: Programiranje | 3061 (2875) | MrBrdo |
» | [C] čuden izpis iz txt dat. na zaslonOddelek: Programiranje | 1663 (1400) | l0g1t3ch |
» | [c] char zadevaOddelek: Programiranje | 2245 (2043) | TheCyborg |