» »

[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]
  • 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

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

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

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.
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:
#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.

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?

pitagora ::

Cudna tipkovnica sem ze nasel in sicer tipka ?

idiot ej sorry ker sem zatezil:):\

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.

CCfly ::

NAME
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 ()

pitagora ::

Dela!
Hvala vsem.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Kalkulator

Oddelek: Programiranje
111328 (1095) lebdim
»

[c++] problem: pretvorba iz malih v velike crke

Oddelek: Programiranje
142136 (1783) Makina
»

[C++] - Tolmačenje povedi in izvedba operacij nad števkami

Oddelek: Programiranje
353351 (2587) jernejl
»

[C++][Naloga] Tekstovne datoteke, realna števila

Oddelek: Programiranje
254052 (3668) Gundolf
»

čitanje črk

Oddelek: Programiranje
71553 (1422) BigWhale

Več podobnih tem