Avatar billede engaai Nybegynder
14. september 2004 - 19:21 Der er 17 kommentarer og
1 løsning

Problem med C++ script

Hej

Jeg har følg script:



#include <iostream.h>
int mult(int x, int y);
int main()
{
  int x, y;
  cout<<"Please input two numbers to be multiplied: ";
  cin>>x>>y;
  cout<<"The product of your two numbers is "<<mult(x, y);
  return 0;
}
int mult(int x, int y)
{
  system("pause");
  return x*y;
}



Som gerne skulle finde produktet, af de to tal brugeren har indtastet. Mit problem er bare at den aldrig skriver produktet, men bare lukker kommandoprompten, når de to tal er indtastet.
( Skal jeg indtaste de to tal i et flyd, med et mellemrum, eller med et enter tryk mellem hvert tal? )

Hvordan kan det være?
Avatar billede morteeart Nybegynder
14. september 2004 - 19:25 #1
system("pause");
  return x*y;
  system.pause();

hvis jeg husker rigtigt.

eller så prøve at køre det via. menuen start -> kør -> cmd -> dit program
Avatar billede driis Nybegynder
14. september 2004 - 19:25 #2
Prøv at åbne en kommandoprompt og køre dit program derfra. Så kan du nå at se resultatet.
Avatar billede morteeart Nybegynder
14. september 2004 - 19:25 #3
ups, de havde du jo med..


  return x*y;
  system("pause");

altså systempause efter dit return.
Avatar billede ksoren Nybegynder
14. september 2004 - 19:28 #4
morteeart>det giver ikke meget mening, at lægge kode efter return.. det bliver ikke afviklet

prøv med denne:

int main()
{
  int x, y;
  cout<<"Please input two numbers to be multiplied: ";
  cin>>x>>y;
  cout<<"The product of your two numbers is "<<mult(x, y);
  system("pause");
  return 0;
}
int mult(int x, int y)
{
  return x*y;
}


du kan også bare åbne en cmd-prompt, og afvikle programmet herfra, så lukker den ikke efter endt kørsel..
Avatar billede bertelbrander Novice
14. september 2004 - 19:28 #5
Flyt  system("pause"); til main(), inden return 0;
Avatar billede engaai Nybegynder
14. september 2004 - 19:33 #6
Tak for svarene.

Det virker både når jeg fjerner system("pause") og kører det gennem kommandoprompten, og når jeg kører det gennem min compiler, med pause sat før return 0; i main, som ksoren og bertelbrander sagde.

- I smider bare et svar driis, ksoren og/eller bertelbrander!
Avatar billede bertelbrander Novice
14. september 2004 - 19:34 #7
Derudover mangler der en:
#include <stdlib.h>
eller en
#include <cstdlib>

Og:
#include <iostream.h>
Bør laves om til:
#include <iostream>
using namespace std;
Avatar billede engaai Nybegynder
14. september 2004 - 19:35 #8
Lige en ting til. Når den udskriver følg: "The product of your two numbers is (produkt)"

Regner den det så ud med denne sætning: <<mult(x, y); eller bruger den på en eller anden måde return x*y som står til sidst i sætningen?
Avatar billede engaai Nybegynder
14. september 2004 - 19:36 #9
hvad gør #include <stdlib.h>
eller en
#include <cstdlib>
Avatar billede bertelbrander Novice
14. september 2004 - 19:38 #10
Prototypen for system findes i stdlib.h/cstrlib
Avatar billede bertelbrander Novice
14. september 2004 - 19:41 #11
Den kalder mult der returnerer resultatet der udskrives med <<

I C++ skal man have prototyper.

I C/C++ laver man ikke scripts, vi kalder det source kode.
Avatar billede engaai Nybegynder
14. september 2004 - 19:42 #12
får mult sit resultat fra return x*y?
Avatar billede bertelbrander Novice
14. september 2004 - 19:47 #13
Ja.

Det er måske nemmere at se hvis vi laver mult om til:

int mult(int x, int y)
{
  int result = x*y;
  return result;
}

Når den skal udskrive kalder den mult, som beregner result og returnerer (et kopi af) denne.
Avatar billede bertelbrander Novice
14. september 2004 - 19:51 #14
Eller:
#include <iostream>
#include <stdlib.h>

using namespace std;

int mult(int x, int y);
int main()
{
  int x, y;
  cout<<"Please input two numbers to be multiplied: ";
  cin>>x>>y;
  int r = mult(x, y);
  cout<<"The product of your two numbers is "<< r << endl;
  system("pause");
  return 0;
}
int mult(int x, int y)
{
  return x*y;
}

Her kan du se at resultatet fra mult() bliver læst over i r, der derefter bliver udskrevet.

I din kode sker der det samme, result og r er blot skjult.
Avatar billede driis Nybegynder
14. september 2004 - 20:17 #15
svar
Avatar billede engaai Nybegynder
14. september 2004 - 20:58 #16
Ville nu gerne se at bertelbrander også smed et svar, eftersom han var den mest ivrige hjælper.
Avatar billede bertelbrander Novice
14. september 2004 - 21:01 #17
Jeg laver ikke svar.
Avatar billede engaai Nybegynder
14. september 2004 - 21:07 #18
Okay, det er da i orden.
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