Avatar billede rexon Nybegynder
24. august 2004 - 17:02 Der er 17 kommentarer og
1 løsning

main + mere

har desværre kun 10 point tilbage :)
nå men spørgmålet er sikkert oss rimeligt nemt..:
her er min kode så... men vil godt have lavet sådan at man indtaster navn først og så går videre til main()
evt. forslag?

// Compyright by RexOn

#include <iostream>
#include <cstdlib>
#include <time.h>
#include <fstream>

using namespace std;

int point = 200;
int svar;
int skud = 20;
int tier = 0;
int nier = 0;
int oter = 0;
int ude = 0;
int navn;
int syver = 0;
int main ()
{
cout << "Indtast dit navn: " << endl;
cin >> navn;
}
int after()
{

while ( skud > 0 ){
system ("CLS");
cout << "Skyde Point vers. 2.0 (indendoers skydning)"<< endl;
cout << "Skriv hvor du har ramt (f.eks 10 eller 9 osv.) (" << skud << " skud tilbage) ("<< point << " point)" << endl;
cout << "Jeg har ramt:" << endl;
cin >> svar;

if (svar == 10)
{
cout << "- 0 point" << endl;
tier = tier +1;
system ("PAUSE");
}

else if (svar == 9 )
{
cout << "-1 point" << endl;
nier = nier +1;
point = point -1;
system ("PAUSE");
}

else if ( svar == 8)
{
cout << "-2 point" << endl;
oter = oter +1;
point = point -2;
system ("PAUSE");
}

else if ( svar == 7)
{
cout << "-3 point" << endl;
ude = ude +1;
syver = syver +1;
point = point -2;
system ("PAUSE");
}

else 
{
cout << "-10 point" << endl;
point = point -10;
system ("PAUSE");
}
skud = skud -1;




}

cout << navn << " resultatet er: " << point << " points" << endl;
cout << tier << " << 10`ere ("<< tier  /20.0 * 100 <<")%" <<endl;
cout << nier << " << 9`ere ("<< nier  /20.0 * 100 <<")%" <<endl;
cout << oter << " << 8`ere (" << oter /20.0 * 100 <<")%" <<endl;
cout << syver<< " << 7`ere ("<< syver  /20.0 * 100 <<")%" <<endl;
cout << ude << " << var ude (" << ude  /20.0 * 100 <<")%" <<endl;


ofstream fo("resultat.txt",ios::app); {
fo << "-------------------" << endl;
fo << navn << " resultatet er: " << point << " points" << endl;
fo << tier << " << 10`ere ("<< tier  /20.0 * 100 <<")%" <<endl;
fo << nier << " << 9`ere ("<< nier  /20.0 * 100 <<")%" <<endl;
fo << oter << " << 8`ere (" << oter /20.0 * 100 <<")%" <<endl;
fo << syver<< " << 7`ere ("<< syver  /20.0 * 100 <<")%" <<endl;
fo << ude << " << var ude(" << ude  /20.0 * 100 <<")%" <<endl;
}


system ("PAUSE");
return 0;
}
Avatar billede arne_v Ekspert
24. august 2004 - 17:08 #1
main udføres altid først.

Så noget i retning af:

...

int after();

int main ()
{
  cout << "Indtast dit navn: " << endl;
  cin >> navn;
  after();
}

...
Avatar billede rexon Nybegynder
24. august 2004 - 17:48 #2
oki .. men problemet er at den ikke gidder at "gå hen til" after
med denne komando:
after();
Avatar billede arne_v Ekspert
24. august 2004 - 17:58 #3
Det skal den.

Prøv lige at post hele din kode med rettelsen.
Avatar billede rexon Nybegynder
24. august 2004 - 18:04 #4
// Compyright by Mikelis Eglitis

#include <iostream>
#include <cstdlib>
#include <time.h>
#include <fstream>

using namespace std;

int point = 200;
int svar;
int skud = 20;
int tier = 0;
int nier = 0;
int oter = 0;
int ude = 0;
int navn;
int syver = 0;
int main ()
{
cout << "Indtast dit navn: " << endl;
cin >> navn;
after();
}
int after()
{

while ( skud > 0 ){
system ("CLS");
cout << "Skyde Point vers. 2.0 (indendoers skydning)"<< endl;
cout << "Skriv hvor du har ramt (f.eks 10 eller 9 osv.) (" << skud << " skud tilbage) ("<< point << " point)" << endl;
cout << "Jeg har ramt:" << endl;
cin >> svar;

if (svar == 10)
{
cout << "- 0 point" << endl;
tier = tier +1;
system ("PAUSE");
}

else if (svar == 9 )
{
cout << "-1 point" << endl;
nier = nier +1;
point = point -1;
system ("PAUSE");
}

else if ( svar == 8)
{
cout << "-2 point" << endl;
oter = oter +1;
point = point -2;
system ("PAUSE");
}

else if ( svar == 7)
{
cout << "-3 point" << endl;
ude = ude +1;
syver = syver +1;
point = point -2;
system ("PAUSE");
}

else 
{
cout << "-10 point" << endl;
point = point -10;
system ("PAUSE");
}
skud = skud -1;




}

cout << navn << " resultatet er: " << point << " points" << endl;
cout << tier << " << 10`ere ("<< tier  /20.0 * 100 <<")%" <<endl;
cout << nier << " << 9`ere ("<< nier  /20.0 * 100 <<")%" <<endl;
cout << oter << " << 8`ere (" << oter /20.0 * 100 <<")%" <<endl;
cout << syver<< " << 7`ere ("<< syver  /20.0 * 100 <<")%" <<endl;
cout << ude << " << var ude (" << ude  /20.0 * 100 <<")%" <<endl;


ofstream fo("resultat.txt",ios::app); {
fo << "-------------------" << endl;
fo << navn << " resultatet er: " << point << " points" << endl;
fo << tier << " << 10`ere ("<< tier  /20.0 * 100 <<")%" <<endl;
fo << nier << " << 9`ere ("<< nier  /20.0 * 100 <<")%" <<endl;
fo << oter << " << 8`ere (" << oter /20.0 * 100 <<")%" <<endl;
fo << syver<< " << 7`ere ("<< syver  /20.0 * 100 <<")%" <<endl;
fo << ude << " << var ude(" << ude  /20.0 * 100 <<")%" <<endl;
}


system ("PAUSE");
return 0;
}
Avatar billede arne_v Ekspert
24. august 2004 - 18:11 #5
Du har glemt at erklære after !

...

int after(); // <---------------------------

int main ()
{
  cout << "Indtast dit navn: " << endl;
  cin >> navn;
  after();
}

...
Avatar billede rexon Nybegynder
24. august 2004 - 18:23 #6
kan ik helt se det? erklære afteR?
after ved mig står jo på samme måde?

int after();
Avatar billede rexon Nybegynder
24. august 2004 - 18:24 #7
eller har sat ";" tegnet på.. men det hjælper ikk :(
Avatar billede rexon Nybegynder
24. august 2004 - 18:24 #8
// Compyright by Mikelis Eglitis

#include <iostream>
#include <cstdlib>
#include <time.h>
#include <fstream>

using namespace std;

int point = 200;
int svar;
int skud = 20;
int tier = 0;
int nier = 0;
int oter = 0;
int ude = 0;
int navn;
int syver = 0;
int main ()
{
  cout << "Indtast dit navn: " << endl;
  cin >> navn;
  after();
}

int after()
{

while ( skud > 0 ){
system ("CLS");
cout << "Skyde Point vers. 2.0 (indendoers skydning)"<< endl;
cout << "Skriv hvor du har ramt (f.eks 10 eller 9 osv.) (" << skud << " skud tilbage) ("<< point << " point)" << endl;
cout << "Jeg har ramt:" << endl;
cin >> svar;

if (svar == 10)
{
cout << "- 0 point" << endl;
tier = tier +1;
system ("PAUSE");
}

else if (svar == 9 )
{
cout << "-1 point" << endl;
nier = nier +1;
point = point -1;
system ("PAUSE");
}

else if ( svar == 8)
{
cout << "-2 point" << endl;
oter = oter +1;
point = point -2;
system ("PAUSE");
}

else if ( svar == 7)
{
cout << "-3 point" << endl;
ude = ude +1;
syver = syver +1;
point = point -2;
system ("PAUSE");
}

else 
{
cout << "-10 point" << endl;
point = point -10;
system ("PAUSE");
}
skud = skud -1;




}

cout << navn << " resultatet er: " << point << " points" << endl;
cout << tier << " << 10`ere ("<< tier  /20.0 * 100 <<")%" <<endl;
cout << nier << " << 9`ere ("<< nier  /20.0 * 100 <<")%" <<endl;
cout << oter << " << 8`ere (" << oter /20.0 * 100 <<")%" <<endl;
cout << syver<< " << 7`ere ("<< syver  /20.0 * 100 <<")%" <<endl;
cout << ude << " << var ude (" << ude  /20.0 * 100 <<")%" <<endl;


ofstream fo("resultat.txt",ios::app); {
fo << "-------------------" << endl;
fo << navn << " resultatet er: " << point << " points" << endl;
fo << tier << " << 10`ere ("<< tier  /20.0 * 100 <<")%" <<endl;
fo << nier << " << 9`ere ("<< nier  /20.0 * 100 <<")%" <<endl;
fo << oter << " << 8`ere (" << oter /20.0 * 100 <<")%" <<endl;
fo << syver<< " << 7`ere ("<< syver  /20.0 * 100 <<")%" <<endl;
fo << ude << " << var ude(" << ude  /20.0 * 100 <<")%" <<endl;
}


system ("PAUSE");
return 0;
}
Avatar billede arne_v Ekspert
24. august 2004 - 18:34 #9
...

int after(); // <--------------------------- med semikolon

int main ()
{
  cout << "Indtast dit navn: " << endl;
  cin >> navn;
  after();
}

int after() // <----------------- uden semikolon
{
    ...
Avatar billede rexon Nybegynder
24. august 2004 - 18:36 #10
japs nu virker det da.. men prøv se hvad der så sker bagefter (prøv at komplimere koden!)

// Compyright by RexOn

#include <iostream>
#include <cstdlib>
#include <time.h>
#include <fstream>

using namespace std;

int point = 200;
int svar;
int skud = 20;
int tier = 0;
int nier = 0;
int oter = 0;
int ude = 0;
int navn;
int after();
int syver = 0;
int main ()
{
  cout << "Indtast dit navn: " << endl;
  cin >> navn;
  after();
}

int after()
{

while ( skud > 0 ){
system ("CLS");
cout << "Skyde Point vers. 2.0 (indendoers skydning)"<< endl;
cout << "Skriv hvor du har ramt (f.eks 10 eller 9 osv.) (" << skud << " skud tilbage) ("<< point << " point)" << endl;
cout << "Jeg har ramt:" << endl;
cin >> svar;

if (svar == 10)
{
cout << "- 0 point" << endl;
tier = tier +1;
system ("PAUSE");
}

else if (svar == 9 )
{
cout << "-1 point" << endl;
nier = nier +1;
point = point -1;
system ("PAUSE");
}

else if ( svar == 8)
{
cout << "-2 point" << endl;
oter = oter +1;
point = point -2;
system ("PAUSE");
}

else if ( svar == 7)
{
cout << "-3 point" << endl;
ude = ude +1;
syver = syver +1;
point = point -2;
system ("PAUSE");
}

else 
{
cout << "-10 point" << endl;
point = point -10;
system ("PAUSE");
}
skud = skud -1;




}

cout << navn << " resultatet er: " << point << " points" << endl;
cout << tier << " << 10`ere ("<< tier  /20.0 * 100 <<")%" <<endl;
cout << nier << " << 9`ere ("<< nier  /20.0 * 100 <<")%" <<endl;
cout << oter << " << 8`ere (" << oter /20.0 * 100 <<")%" <<endl;
cout << syver<< " << 7`ere ("<< syver  /20.0 * 100 <<")%" <<endl;
cout << ude << " << var ude (" << ude  /20.0 * 100 <<")%" <<endl;


ofstream fo("resultat.txt",ios::app); {
fo << "-------------------" << endl;
fo << navn << " resultatet er: " << point << " points" << endl;
fo << tier << " << 10`ere ("<< tier  /20.0 * 100 <<")%" <<endl;
fo << nier << " << 9`ere ("<< nier  /20.0 * 100 <<")%" <<endl;
fo << oter << " << 8`ere (" << oter /20.0 * 100 <<")%" <<endl;
fo << syver<< " << 7`ere ("<< syver  /20.0 * 100 <<")%" <<endl;
fo << ude << " << var ude(" << ude  /20.0 * 100 <<")%" <<endl;
}


system ("PAUSE");
return 0;
}
Avatar billede arne_v Ekspert
24. august 2004 - 18:40 #11
int navn;

->

char navn[100];
Avatar billede rexon Nybegynder
24. august 2004 - 18:55 #12
Thx nu skal du få mine sidste point .. men når jeg får nogle nye skal du nok få lidt mere pr. spørgsmål :P :)
men hvad var fejlen ved int name; ?
og hvad er forskællen på char variablem ?
Avatar billede arne_v Ekspert
24. august 2004 - 19:03 #13
int = tal
char = bogstav
char [100] = streng med op til 99 bogstaver
Avatar billede arne_v Ekspert
24. august 2004 - 19:03 #14
svar
Avatar billede rexon Nybegynder
25. august 2004 - 18:28 #15
der kommer sq ny fejl.. den siger alligeved -10 hele tiden..
Avatar billede rexon Nybegynder
25. august 2004 - 18:29 #16
bah... bare mig thx
Avatar billede jakobdo Ekspert
26. august 2004 - 13:07 #17
Jeg tænkte lige på, kender du Switch/Case?

Du kan evt læse mere på siden: http://www.cplusplus.com/doc/tutorial/tut2-1.html

Jeg har rettet din kode lidt til:

// Compyright by RexOn

#include <iostream>
#include <cstdlib>
#include <time.h>
#include <fstream>

using namespace std;

int after();

int point = 200;
int svar;
int skud = 20;
int tier = 0;
int nier = 0;
int oter = 0;
int ude = 0;
char navn[100];
int syver = 0;

int main ()
{
  cout << "Indtast dit navn: " << endl;
  cin >> navn;
  after();
}

int after()
{
    while ( skud > 0 )
    {
        system ("CLS");
        cout << "Skyde Point vers. 2.0 (indendoers skydning)"<< endl;
        cout << "Skriv hvor du har ramt (f.eks 10 eller 9 osv.) (" << skud << " skud tilbage) ("<< point << " point)" << endl;
        cout << "Jeg har ramt:" << endl;
        cin >> svar;

        switch(svar)
        {
            case 10:
                cout << "- 0 point" << endl;
                tier = tier +1;
                system ("PAUSE");
                break;
            case 9:
                cout << "-1 point" << endl;
                nier = nier +1;
                point = point -1;
                system ("PAUSE");
                break;
            case 8:
                cout << "-2 point" << endl;
                oter = oter +1;
                point = point -2;
                system ("PAUSE");
                break;
            case 7:
                cout << "-3 point" << endl;
                ude = ude +1;
                syver = syver +1;
                point = point -2;
                system ("PAUSE");
                break;
            default:
                cout << "-10 point" << endl;
                point = point -10;
                system ("PAUSE");
        }
        skud = skud -1;
    }

    cout << navn << " resultatet er: " << point << " points" << endl;
    cout << tier << " << 10`ere ("<< tier  /20.0 * 100 <<")%" <<endl;
    cout << nier << " << 9`ere ("<< nier  /20.0 * 100 <<")%" <<endl;
    cout << oter << " << 8`ere (" << oter /20.0 * 100 <<")%" <<endl;
    cout << syver<< " << 7`ere ("<< syver  /20.0 * 100 <<")%" <<endl;
    cout << ude << " << var ude (" << ude  /20.0 * 100 <<")%" <<endl;

    ofstream fo("resultat.txt",ios::app);
    {
        fo << "-------------------" << endl;
        fo << navn << " resultatet er: " << point << " points" << endl;
        fo << tier << " << 10`ere ("<< tier  /20.0 * 100 <<")%" <<endl;
        fo << nier << " << 9`ere ("<< nier  /20.0 * 100 <<")%" <<endl;
        fo << oter << " << 8`ere (" << oter /20.0 * 100 <<")%" <<endl;
        fo << syver<< " << 7`ere ("<< syver  /20.0 * 100 <<")%" <<endl;
        fo << ude << " << var ude(" << ude  /20.0 * 100 <<")%" <<endl;
    }

    system ("PAUSE");
    return 0;
}
Avatar billede rexon Nybegynder
26. august 2004 - 14:55 #18
havde faktisk læst om det :) og tænkte på om jeg skulle / kunne bruge det..
men var ik helt sikker så brugte bare det andet!
men thx for eksemplet .. det er jo en del nemmere - ka` jeg godt se!
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