Avatar billede cbegynder Nybegynder
05. december 2001 - 16:45 Der er 8 kommentarer og
3 løsninger

regnmaskin

hvorfor virker den ik...jeg får fejl i else commandoen !

#include <stdio.h>

int main()

{
int a,b,c,plus,minus,r,t;
clrscr();
printf(\"En: \");
scanf(\"%d\", &a);
printf(\"To: \");
scanf(\"%d\", &b);
printf(\"Tre: \");
scanf(\"%d\", &c);
if (b==\'+\')
    r = a + c;
      printf(\"%d + %d = %d\", a, c, r);
else
    t = a - c;
    printf(\"%d + %d = %d\", a, c, t);
return 0;
}
Avatar billede jpk Nybegynder
05. december 2001 - 16:48 #1
Prøv

if (b==\'+\')
{
    r = a + c;
      printf(\"%d + %d = %d\", a, c, r);
}
else
{
    t = a - c;
    printf(\"%d + %d = %d\", a, c, t);
}
Avatar billede cbegynder Nybegynder
05. december 2001 - 16:53 #2
det skulle stå sådan her..

den beregner det forskert ! :(

#include <stdio.h>

int main()

{
int a,b,c,plus,minus;
clrscr();
printf(\"En: \");
scanf(\"%d\", &a);
printf(\"To: \");
scanf(\"%d\", &b);
printf(\"Tre: \");
scanf(\"%d\", &c);
if (b==\'+\')
{
    plus = a + c;
      printf(\"%d + %d = %d\", a, c, plus);
}
else
{
    minus = a - c;
    printf(\"%d - %d = %d\", a, c, minus);
}
return 0;
}
Avatar billede cbegynder Nybegynder
05. december 2001 - 16:54 #3
jeg får altid minus ;(
Avatar billede fri-hash Nybegynder
05. december 2001 - 16:59 #4
prøv at lav b om til en char istedet for en int
Avatar billede cbegynder Nybegynder
05. december 2001 - 17:20 #5
Jeg har lavet en anden måde....her skriver den at jeg har misbrugt else commandoen !

#include <stdio.h>

int main()

{
  int a, b, c, plus, minus;
  clrscr();
  printf(\"En: \");
    scanf(\"%d\", &a);
  printf(\"To: \");
    scanf(\"%d\", &b);
  printf(\"Tre: \");
    scanf(\"%d\", &c);
  if (b==\'+\')
    plus = a + c;
      printf(\"%d + %d = %d\", a, c,plus);
  else if (b==\'-\')
    minus = a - c;
      printf(\"%d - %d = %d\", a, c, minus);
  else
    printf(\"Du har brugt noget som regnemaskinen ik bruger\");
return 0;
}

Avatar billede fri-hash Nybegynder
05. december 2001 - 17:31 #6
når der er flere statements der skal udføres sammen sakl de i tuborgklammer

if (etellerandet)
{
  ,,,,,,,,,,
  ,,,,,,,,
}
else
{
  ,,,,,,
  ,,,,,
}

og en variabel af typen int kan ikke være tegnet +

prøv:

#include <stdio.h>

int main()

{
  int a, c, plus, minus;
  char b;
  clrscr();
  printf(\"En: \");
    scanf(\"%d\", &a);
  printf(\"To: \");
    scanf(\"%d\", &b);
  printf(\"Tre: \");
    scanf(\"%d\", &c);
  if (b==\'+\'){
    plus = a + c;
      printf(\"%d + %d = %d\", a, c,plus);
  }
  else if (b==\'-\'){
    minus = a - c;
      printf(\"%d - %d = %d\", a, c, minus);
  }
  else
    printf(\"Du har brugt noget som regnemaskinen ik bruger\");
return 0;
}
Avatar billede cbegynder Nybegynder
05. december 2001 - 17:33 #7
den virker, men bliver ved med at skrive \"Du har brugt noget som regnemaskinen ik bruger\" !
Avatar billede infected_user Nybegynder
05. december 2001 - 21:31 #8
Hvad gør: clrscr();
? er bare nysgeriig...
er vandt til c++ og sku mene det der er c?!
ihvertfald noget af det...
Avatar billede jpk Nybegynder
05. december 2001 - 22:48 #9
clrscr = clear screen (gæt selv resten...)

Avatar billede soepro Nybegynder
06. december 2001 - 10:26 #10
Dit problem er meget mere simpelt: når du bruger scanf til a indlæse input, får du ikke noget særskildt minus - slet ikke når du indlæser til en int.

Gør sådan her:

#include <stdio.h>

int main()
{
  int  a,c,plus,minus;
  char b;
  clrscr();
  printf(\"Tal 1: \");
  scanf(\"%d\", &a);
  printf(\"Operand: \");
  scanf(\"%c\", &b);
  printf(\"Tal 2: \");
  scanf(\"%d\", &c);
  if (b==\'+\')
  {
    plus = a + c;
    printf(\"%d + %d = %d\", a, c, plus);
  }
  else
  {
    minus = a - c;
    printf(\"%d - %d = %d\", a, c, minus);
  };
  return 0;
}

\"Humlen\" er den ændrede def af b og den ændrede scanf med parameter \"%c\" som første led, for at læse eet tegn.
Avatar billede cbegynder Nybegynder
08. december 2001 - 20:49 #11
har lavet den på en anden måde, men ellers tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester