Avatar billede cbegynder Nybegynder
08. december 2001 - 21:51 Der er 20 kommentarer

c++ svær :(

Hejsa

jeg er ved at lave en lommeregne endnu :)..

jeg støder på et problem :(, at jeg vil ha den til at gentage sig flere gang fra line 26...jeg har prøvet at gøre det på denne måde, og jeg ved at det ik virker, men kun for at vise jer hvad jeg mener :)
håber nogen ved hvordan det kan gøres og på forhånd tak forhjælpen :)

printf(\"Vil du fors‘tte med at regne (Ja eller Nej)\");
scanf(\"%s\", &ja_nej);
if(ja_nej==\'Ja\')
goto line 26;
else if(ja_nej==\'ja\')
goto line 26;
else
exit();
Avatar billede fri-hash Nybegynder
08. december 2001 - 22:01 #1
while(1){

  her kommer al det der skal gentages uendelig
}

men det er ikke særlig pænt ... der skal normalt være en stopbetingelse
Avatar billede cbegynder Nybegynder
08. december 2001 - 22:09 #2
jeg synes at de samme folk svar på min c spm altid :)

Her er min compelte source, vil du gøre det for mig, så jeg kan få en overblik af det du mener :)

#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <stdlib.h>
void main()
{
float a,b;
char operator;
int ja_nej;
clrscr();
textcolor(11);                      /* Tekst farven */
window(20,9,67,20);                /* bner en vindue */
cprintf(\"ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\");
cprintf(\"º Velkommen til min lille program som jeg selv º\");
cprintf(\"º har siddet og lavet! Programmet g†r ud p† at º\");
cprintf(\"º regne regnestykker. (Matematik) Version 1.0  º\");
cprintf(\"ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹\");
cprintf(\"º Copyright 2002 ¸  !            º\");
cprintf(\"ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹\");
cprintf(\"º Tryk p† enter for at fors‘t.                º\");
cprintf(\"ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\");
getch();                            /* Indl‘ser et tegn (Enter) */
clrscr();                            /* Sletter alt p† sk‘rmen */
window(15,10,65,20);                /* bner en ny vindue */
cprintf(\"Indtast et regnestykke, med +.-.* eller /: \");
scanf(\"%f %c %f\", &a, &operator, &b);
{
  if(operator==\'+\')
      printf(\"%.2f %c %.2f = %.2f\", a, operator, b, a + b);
  else if (operator==\'-\')
      printf(\"%.2f %c %.2f = %.2f\", a, operator, b, a - b);
  else if (operator==\'*\')
      printf(\"%.2f %c %.2f = %.2f\", a, operator, b, a * b);
  else if (operator==\'/\')
      printf(\"%.2f %c %.2f = %.2f\", a, operator, b, a / b);
  else
      printf(\"Du kan kun bruge de fire tegn (+,-,* og /)\");
}
printf(\"Vil du fors‘tte med at regne (Ja eller Nej)\");
scanf(\"%s\", &ja_nej);
if(ja_nej==\'Ja\')
goto line 26;
else if(ja_nej==\'ja\')
goto line 26;
else
exit();
}
Avatar billede fri-hash Nybegynder
08. december 2001 - 22:13 #3
hvilken linie er 26 ?
Avatar billede cbegynder Nybegynder
08. december 2001 - 22:16 #4
cprintf(\"Indtast et regnestykke, med +.-.* eller /: \");
Avatar billede cbegynder Nybegynder
08. december 2001 - 22:30 #5
er du der ?
Avatar billede fri-hash Nybegynder
08. december 2001 - 22:31 #6
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <stdlib.h>
void main()
{
float a,b;
char operator;
int ja_nej;
clrscr();
textcolor(11);                      /* Tekst farven */
window(20,9,67,20);                /* bner en vindue */
cprintf(\"ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\");
cprintf(\"º Velkommen til min lille program som jeg selv º\");
cprintf(\"º har siddet og lavet! Programmet g&#8224;r ud p&#8224; at º\");
cprintf(\"º regne regnestykker. (Matematik) Version 1.0  º\");
cprintf(\"ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹\");
cprintf(\"º Copyright 2002 ¸  !            º\");
cprintf(\"ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹\");
cprintf(\"º Tryk p&#8224; enter for at fors&#8216;t.                º\");
cprintf(\"ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\");
getch();                            /* Indl&#8216;ser et tegn (Enter) */
clrscr();                            /* Sletter alt p&#8224; sk&#8216;rmen */
window(15,10,65,20);                /* bner en ny vindue */

printf(\"Vil du begynde at regne (Ja eller Nej)\");
scanf(\"%s\", &ja_nej);
while(ja_nej==\'ja\'){

cprintf(\"Indtast et regnestykke, med +.-.* eller /: \");
scanf(\"%f %c %f\", &a, &operator, &b);
{
  if(operator==\'+\')
      printf(\"%.2f %c %.2f = %.2f\", a, operator, b, a + b);
  else if (operator==\'-\')
      printf(\"%.2f %c %.2f = %.2f\", a, operator, b, a - b);
  else if (operator==\'*\')
      printf(\"%.2f %c %.2f = %.2f\", a, operator, b, a * b);
  else if (operator==\'/\')
      printf(\"%.2f %c %.2f = %.2f\", a, operator, b, a / b);
  else
      printf(\"Du kan kun bruge de fire tegn (+,-,* og /)\");
}
printf(\"Vil du fors&#8216;tte med at regne (Ja eller Nej)\");
scanf(\"%s\", &ja_nej);

} // slutter while-løkken

exit();
}
Avatar billede fri-hash Nybegynder
08. december 2001 - 22:35 #7
see the point?

løkken kører sålænge ja_nej er \'ja\' .... inde i lækken ændres ja_nej til på et tidspunkt at stoppe løkken
Avatar billede cbegynder Nybegynder
08. december 2001 - 22:40 #8
frihash > den skulle ik spørger først om den skal starte :(
Avatar billede fri-hash Nybegynder
08. december 2001 - 22:45 #9
så skift dette :

printf(\"Vil du begynde at regne (Ja eller Nej)\");
scanf(\"%s\", &ja_nej);

ud med :

ja_nej=\'ja\';

Avatar billede cbegynder Nybegynder
08. december 2001 - 22:53 #10
Jeg får fejl ?
too few parameters in  call to \'exit\' !
Avatar billede fri-hash Nybegynder
08. december 2001 - 23:19 #11
exit er ikke noget jeg har sat ind ... aner ikke hvad den skal
Avatar billede mickni33 Nybegynder
09. december 2001 - 10:13 #12
exit ()  skal have et ettal(1) i parenteserne

exit(1);
Brug aldrig goto i C/C++ det er ikke pænt har aldrig set det i et program før.
Men jeg tror det er fordi du ikke har læst om brug af funktioner som man bruger når procedure skal gentages
Avatar billede cbegynder Nybegynder
09. december 2001 - 11:38 #13
mickni > jeg har brugt goto ! hvad er der galt med denne commando...den virker i være fald :)
Avatar billede fri-hash Nybegynder
09. december 2001 - 11:44 #14
jeg vil stadig påstå at den whileløkke jeg har postet 22:31 sammen med den rettelse 22:45 burde løse det aktuelle problem .... prøv at slet exit() eller smid det 1-tal ind mickni foreslår
Avatar billede soepro Nybegynder
11. december 2001 - 11:45 #15
Dit problem er din sammenligning af ja_nej med \'ja\' - du sammenligner værdien af pinterne - ikke indholdet. Du skal rette din if til:

if (strcmp(ja_nej, \"ja\") != 0)
{ // Brugeren ønsker ikke at regne mere
  return 0;
};

hvis du vil køre \"rundt\", indtil brugeren ikke ønsker det mere (dog mindst en gan) kan du bruge følgende konstruktion:

char * hentSvar(void)
{
  static char ja_nej[4];
  printf(\"Vil du begynde at regne (ja eller nej)\");
  scanf(\"%s\", &ja_nej);
  return ja_nej;
} // hentSvar

int main(void)
{
  while (strncmp(hentSvar(), \"ja\") == 0)
  {
    // Så regner vi
    :
  };
  return 0;
} // main
Avatar billede soepro Nybegynder
11. december 2001 - 11:50 #16
Sæt lige selv de manglende bogstaver ind: o, g.

Det vil i øvrigt være mere \"sikkert\" at checke på hvad brugeren reelt indtaster og dermed sikrer at det er en gyldig værdi. scanf har nogle begrænsninger i den sammenhæng, så hvad med:

char hentSvar(void)
{
  static char ja_nej;
  ja_nej = \' \';
  printf(\"Vil du begynde at regne (J eller N): \");
  while (ja_nej != \'J\' && ja_nej != \'N\')
    ja_nej = getch();
  return ja_nej;
} // hentSvar

int main(void)
{
  while (hentSvar() == \'J\')
  { // Så regner vi
  }; // Indtil N
  return 0;
} // main
Avatar billede cyberlsn Nybegynder
12. december 2001 - 11:30 #17
Jeg er ikke helt sikker, men jeg mener det er noget i stil med:

#include <iostream.h>
int main()
{
    int i;
    int x;
    char q;
    while (q != \'q\')
{
  cout<<\"Indtast et tal: \"<<endl;
  cin>>i;
  cout <<\"Indtast endnu et tal: \"<<endl;
  cin>>x;
  cout<<\"Det er = \"<<i+x<<endl;
  cout<<\"Tast q, for at afslutte!\"<<<endl;
}
{
    cin>>q;
}
  return 0;
}
Avatar billede soepro Nybegynder
13. december 2001 - 11:48 #18
cbegynder >> Så har du vist fået dine svar - hvad med at vælge hvilket du synes var bedst, og så få lukket spørgsmålet !
Avatar billede stringbuffer Nybegynder
19. december 2001 - 12:34 #19
LOL
lommeregner? Skal man da ikke slæbe hele PC´en med for at bruge den?
*gnæk* *gnæk*
Avatar billede fri-hash Nybegynder
17. februar 2002 - 21:14 #20
måske på tide at lukke spørgsmålet???
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