• 26 818 online
  • 1 111 988 medlemmar
  • 57 833 934 inlägg
2017-01-10, 19:46
  #1
Medlem
Har fått en uppgift som jag har löst till 90%. vad jag inte får rätt på är texten som ska skrivas ut på slutet där det ska stå så här:

10 tärningskast: x, x, x, x, x, x, x, x, x, x (på en rad)
vad den gör nu är att den skriver ut de bara uppifrån ner.
x
x
x
x
x
x
x
x
x
x

ge gärna tips för att förenkla koden kanske lite. Tack
Kod:
#include <iostream>
#include <cstdlib>          //biliotek för rand() tal
#include <ctime>            //bibliotek för tid srand(time(0))

using namespace std;

int total(int kast[])               //funktionen för toatl summan för kasten
{
    int total;
    for(int i=0;i<10;i++)           //10 st kast
        {
            total=kast[0]+kast[1]+kast[2]+kast[3]+kast[4]+kast[5]+kast[6]+kast[7]+kast[8]+kast[9];  //summan av samtliga kasten
        }
 return total;                      //returerar total
}

int lagsta(int kast[])             //funktion för lägsta kastet
{
    int lagsta=10;                  
    for(int i=0;i<10;i++)
    {
        if(kast[i]<lagsta)
        {
            lagsta=kast[i];
        }
    }
 return lagsta;
}

int hogsta(int kast[])
{
    int hog=0;
    for(int i=0;i<10;i++)
    {
        if(kast[i]>hog)
        {
            hog=kast[i];
        }
    }
return hog;
}

int main()
{
    int kast[10];

    srand(time(0));

    for(int i=0; i<10; i++)
    {
        kast[i]=rand()%6+1;
        cout << kast[i] << endl;
    }
cout << "H\x94gsta kast: " << hogsta(kast) << endl;
cout << "L\x84gsta kast: " << lagsta(kast)<<endl;
cout << "Summa av kasten: " <<total(kast)<<endl;

return 0;
}
Citera
2017-01-10, 19:52
  #2
Medlem
Kung-Caligulas avatar
Ta bort << endl; i for loopen som skrover ut

Istället skriv << " "; så får du mellanrum mellan kasten,
Citera
2017-01-10, 20:02
  #3
Medlem
Citat:
Ursprungligen postat av Kung-Caligula
Ta bort << endl; i for loopen som skrover ut

Istället skriv << " "; så får du mellanrum mellan kasten,

har gjort det också och jag har lyckats med det men jag vill ha med texten (10 st tärningskast: "sen kommer kasten efter"). Men skriver jag in det i där så loopar den det 10ggr och d vill jag ej
Citera
2017-01-10, 20:08
  #4
Medlem
Citat:
Ursprungligen postat av ladoakadot
har gjort det också och jag har lyckats med det men jag vill ha med texten (10 st tärningskast: "sen kommer kasten efter"). Men skriver jag in det i där så loopar den det 10ggr och d vill jag ej

Lägg till en cout mellan srand och for-loopen?
Citera
2017-01-10, 20:12
  #5
Medlem
Citat:
Ursprungligen postat av ladoakadot
har gjort det också och jag har lyckats med det men jag vill ha med texten (10 st tärningskast: "sen kommer kasten efter"). Men skriver jag in det i där så loopar den det 10ggr och d vill jag ej

endl står för end line, skriver du det kommer du att avsluta raden.Vill du skriva '10st kast', skriv ut '10 st kast', men skriv inte ut endl. Nästa utskrift kommer att forstsätta efter sista tecknet i förra utskriften, oavsett om det är en eller två hundra tusen rader kod efter.

Sedan får du gärna kolla i din funktion total och se vad den egentligen gör.
Sista så kan du också lägga in 10 i en variabel som du använder i alla ställen där du använder 10, vissa ställen kan du använda längden på arrayen istället. För vad händer om du vill göra 11 kast? 9 kast? Måste skriva om på femtioelva ställen.
Citera
2017-01-10, 20:16
  #6
Medlem
Kung-Caligulas avatar
Citat:
Ursprungligen postat av ladoakadot
har gjort det också och jag har lyckats med det men jag vill ha med texten (10 st tärningskast: "sen kommer kasten efter"). Men skriver jag in det i där så loopar den det 10ggr och d vill jag ej

Om du nu redan visste det så,undrar man junvarför du frågade om hjälp just specifikt med den delen? Skriv för fan cout << "valfri text" ; innan for loopen så får du aökt resultat,
Citera
2017-01-11, 13:42
  #7
Medlem
tack för er hjälp har fixat det nu..
Kod:
#include <iostream>
#include <cstdlib>          //biliotek för rand() tal
#include <ctime>            //bibliotek för tid srand(time(0))

using namespace std;

int total(int kast[])               //funktionsdefinition för toatl summan för kasten
{
    int total;
    for(int i=0;i<10;i++)           //10 st kast
        {
            total=kast[0]+kast[1]+kast[2]+kast[3]+kast[4]+kast[5]+kast[6]+kast[7]+kast[8]+kast[9];  //summan av samtliga kasten
        }
 return total;                      //returnerar total
}

int lagsta(int kast[])             //funktionsdefinition för lägsta kastet
{
    int lagsta=10;
    for(int i=0;i<10;i++)
    {
        if(kast[i]<lagsta)			//hittar lägsta kastet av 10 st kast
        {
            lagsta=kast[i];
        }
    }
 return lagsta;						//returnerar lägsta kastet
}

int hogsta(int kast[])				//funktionsdefinition för högsta kastet
{
    int hog=0;
    for(int i=0;i<10;i++)
    {
        if(kast[i]>hog)				//hittar det lägsta kastet av 10 st kast
        {
            hog=kast[i];
        }
    }
return hog;							//returnerar högsta kastet
}

int main()
{
    int kast[10];					//10 st heltals array kast

    srand(time(0));

    cout << "10 t\x84rningskast: ";   //utskrift av kasten

    for(int i=0; i<10; i++)
    {
        kast[i]=rand()%6+1;			//slumpar fram 10 st kast med värdet från 1-6
        cout << kast[i] << " ";
    }
cout << "\nH\x94gsta kast: " << hogsta(kast) << endl;		//skriver ut högsta kastet med hjälp av funktionsanropet hogsta
cout << "L\x84gsta kast: " << lagsta(kast)<<endl;			//skriver ut lägsta kastet med hjälp av funktionsanropet lagsta
cout << "Summa av kasten: " <<total(kast)<<endl;			//skriver ut summan av samtliga 10 st kast med hjälp av funktionsanropet total

return 0;
}
Citera
2017-01-11, 15:00
  #8
Medlem
senaste ändringen!!!
Kod:
#include <iostream>
#include <cstdlib>          //biliotek för rand() tal
#include <ctime>            //bibliotek för tid srand(time(0))

using namespace std;

int total(int kast[])               //funktionsdefinition för toatl summan för kasten
{
    int total;
    for(int i=0;i<10;i++)           //10 st kast
        {
            total+=kast[i];         //summan av samtliga kasten
        }
 return total;                      //returnerar total
}

int lagsta(int kast[])             //funktionsdefinition för lägsta kastet
{
    int lagsta=10;
    for(int i=0;i<10;i++)
    {
        if(kast[i]<lagsta)			//hittar lägsta kastet av 10 st kast
        {
            lagsta=kast[i];
        }
    }
 return lagsta;						//returnerar lägsta kastet
}

int hogsta(int kast[])				//funktionsdefinition för högsta kastet
{
    int hog=0;
    for(int i=0;i<10;i++)
    {
        if(kast[i]>hog)				//hittar det lägsta kastet av 10 st kast
        {
            hog=kast[i];
        }
    }
return hog;							//returnerar högsta kastet
}

int main()
{
    int kast[10];					//10 st heltals array kast

    srand(time(0));

    cout << "10 t\x84rningskast: ";   //utskrift av kasten

    for(int i=0; i<10; i++)
    {
        kast[i]=rand()%6+1;			//slumpar fram 10 st kast med värdet från 1-6
        cout << kast[i] << " ";
    }
cout << "\nH\x94gsta kast: " << hogsta(kast) << endl;		//skriver ut högsta kastet med hjälp av funktionsanropet hogsta
cout << "L\x84gsta kast: " << lagsta(kast)<<endl;			//skriver ut lägsta kastet med hjälp av funktionsanropet lagsta
cout << "Summa av kasten: " <<total(kast)<<endl;			//skriver ut summan av samtliga 10 st kast med hjälp av funktionsanropet total

return 0;
}
Citera
2017-01-11, 15:14
  #9
Medlem
Citat:
Ursprungligen postat av ladoakadot
senaste ändringen!!!
Kod:
#include <iostream>
#include <cstdlib>          //biliotek för rand() tal
#include <ctime>            //bibliotek för tid srand(time(0))

using namespace std;

int total(int kast[])               //funktionsdefinition för toatl summan för kasten
{
    int total;
    for(int i=0;i<10;i++)           //10 st kast
        {
            total+=kast[i];         //summan av samtliga kasten
        }
 return total;                      //returnerar total
}

int lagsta(int kast[])             //funktionsdefinition för lägsta kastet
{
    int lagsta=10;
    for(int i=0;i<10;i++)
    {
        if(kast[i]<lagsta)			//hittar lägsta kastet av 10 st kast
        {
            lagsta=kast[i];
        }
    }
 return lagsta;						//returnerar lägsta kastet
}

int hogsta(int kast[])				//funktionsdefinition för högsta kastet
{
    int hog=0;
    for(int i=0;i<10;i++)
    {
        if(kast[i]>hog)				//hittar det lägsta kastet av 10 st kast
        {
            hog=kast[i];
        }
    }
return hog;							//returnerar högsta kastet
}

int main()
{
    int kast[10];					//10 st heltals array kast

    srand(time(0));

    cout << "10 t\x84rningskast: ";   //utskrift av kasten

    for(int i=0; i<10; i++)
    {
        kast[i]=rand()%6+1;			//slumpar fram 10 st kast med värdet från 1-6
        cout << kast[i] << " ";
    }
cout << "\nH\x94gsta kast: " << hogsta(kast) << endl;		//skriver ut högsta kastet med hjälp av funktionsanropet hogsta
cout << "L\x84gsta kast: " << lagsta(kast)<<endl;			//skriver ut lägsta kastet med hjälp av funktionsanropet lagsta
cout << "Summa av kasten: " <<total(kast)<<endl;			//skriver ut summan av samtliga 10 st kast med hjälp av funktionsanropet total

return 0;
}
nu får jag fel summa på totalen. Vad gör jag för fel
Citera
2017-01-11, 15:32
  #10
Medlem
RostigHinks avatar
Citat:
Ursprungligen postat av ladoakadot
nu får jag fel summa på totalen. Vad gör jag för fel
Initiera variablen total till 0.
Kod:
int total = 0;
Citera
2017-01-11, 15:46
  #11
Medlem
Citat:
Ursprungligen postat av RostigHink
Initiera variablen total till 0.
Kod:
int total = 0;

Huvudet står stilla. TACK
Citera
2017-01-11, 17:23
  #12
Medlem
kaks avatar
Din tärning är inte symmetrisk.
Alla sidor har inte samma sannolikhet.
Citera