hjälp med for-slinga (c++ (dööh?))

Permalänk
Medlem

hjälp med for-slinga (c++ (dööh?))

håller på att göra ett lottoprogram till läraren så att han ska bli glad men jag suger på for-slingor. Det jag behöver är nåt som kollar om den ena raden stämmer med den andra och jag kan inte tänka ut hur man ska göra på bästa sätt.

#include <iostream>
#include <ctime>
#include <string>
using namespace std;

struct Lotto{
int l1, l2, l3, l4, l5, l6, l7; //nummren som programmet slumpar fram
int g1, g2, g3, g4, g5, g6, g7; //nummren som användaren matar in
int r1, r2, r3, r4, r5, r6, r7; //kollar om l1 och g1 är samma
};

int main()

{
srand (time(0));
Lotto l;

l.l1 = rand()% 35 + 1;
l.l2 = rand()% 35 + 1;
l.l3 = rand()% 35 + 1;
l.l4 = rand()% 35 + 1;
l.l5 = rand()% 35 + 1;
l.l6 = rand()% 35 + 1;
l.l7 = rand()% 35 + 1;

cout <<"Mata in 7 tal mellan 1 och 35: " <<endl;

cin >> l.g1;
cin >> l.g2;
cin >> l.g3;
cin >> l.g4;
cin >> l.g5;
cin >> l.g6;
cin >> l.g7;

cout <<"\nRaden - Din rad" <<endl;
cout <<l.l1 <<" - " <<l.g1 <<endl;
cout <<l.l2 <<" - " <<l.g2 <<endl;
cout <<l.l3 <<" - " <<l.g3 <<endl;
cout <<l.l4 <<" - " <<l.g4 <<endl;
cout <<l.l5 <<" - " <<l.g5 <<endl;
cout <<l.l6 <<" - " <<l.g6 <<endl;
cout <<l.l7 <<" - " <<l.g7 <<endl;

return 0;
}

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk
Medlem

Använd arrayer i stället för g1, g2,...,g7 osv.

Visa signatur

flaah!

Permalänk

Så här kanske, om du använder g[7] istället för g1,g2,g3 osv... ^

int i;
for (i=0;i<7;i++) {
if (g[i] == l[i]) {
r[i]=1;
} else {
r[i]=0;
}
}

Visa signatur

stor och snabb dator
http://www.antiklimax.com

Permalänk
Medlem

aha

tackar

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk
Medlem

nytt problem

lade till denna kodstump i slutet av programet:

int i;
for (i=0;i<7;i++) {
if (g[i] == l[i]) {
r[i]=1;
} else {
r[i]=0;
}
}

cout <<"\nDu hade " <<r <<" rett." <<endl;

Detta borde göra så att jag kan se hur många rätt jag hade men det gör det itne. Isället för tex 2 får "r" värdet -9030248 typ. Vad har jag gjort för fel?

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk

kan ju pröva att köra en for sats...?kanske...

int summa =0;
for (i=0;i<7;i++) {
summa+=r[i];
}
cout<<summa;

Visa signatur

stor och snabb dator
http://www.antiklimax.com

Permalänk
Medlem

fattar inte

nu ser det ut så här istället och funkar inte som det ska:

#include <iostream>
#include <ctime>
#include <string>
using namespace std;

int main()

{
int l[7]; //nummren som programmet slumpar fram
int g[7]; //nummren som användaren matar in
int r[7]; //resultat
int r;

srand (time(0));

l[0] = rand()% 35 + 1;
l[1] = rand()% 35 + 1;
l[2] = rand()% 35 + 1;
l[3] = rand()% 35 + 1;
l[4] = rand()% 35 + 1;
l[5] = rand()% 35 + 1;
l[6] = rand()% 35 + 1;

cout <<"Mata in 7 tal mellan 1 och 35: " <<endl;

cin >> g[0];
cin >> g[1];
cin >> g[2];
cin >> g[3];
cin >> g[4];
cin >> g[5];
cin >> g[6];

cout <<"\nRaden - Din rad" <<endl;
cout <<l[0] <<" - " <<g[0] <<endl;
cout <<l[1] <<" - " <<g[1] <<endl;
cout <<l[2] <<" - " <<g[2] <<endl;
cout <<l[3] <<" - " <<g[3] <<endl;
cout <<l[4] <<" - " <<g[4] <<endl;
cout <<l[5] <<" - " <<g[5] <<endl;
cout <<l[6] <<" - " <<g[6] <<endl;

int i;
for (i=0;i<7;i++) {
if (g[i] == l[i]) {
r[i]=1;
} else {
r[i]=0;
}
}

cout <<"\nDu hade " <<r <<" rett." <<endl;

return 0;
}

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk

int i;
r=0;
for (i=0;i<7;i++) {
if (g[i] == l[i]) {
r++;
}

Visa signatur

stor och snabb dator
http://www.antiklimax.com

Permalänk

#include <iostream>
#include <ctime>
#include <string>
using namespace std;

int main()

{
int l[7]; //nummren som programmet slumpar fram
int g[7]; //nummren som användaren matar in
int i,r=0; //resultat

srand (time(0));

for (i=0;i<7;i++) {
l[i] = rand()% 35 + 1;
}

cout <<"Mata in 7 tal mellan 1 och 35: " <<endl;
for (i=0;i<7;i++) {
cin >> g[i];
}

cout<<"\nRaden - Din rad" <<endl;
for (i=0;i<7;i++) {
cout <<l[i] <<" - " <<g[i] <<endl;
}

for (i=0;i<7;i++) {
if (g[i] == l[i]) {
r++;
}
}

cout <<"\nDu hade " <<r <<" rett." <<endl;
cin>>i;
return 0;
}

Visa signatur

stor och snabb dator
http://www.antiklimax.com