3 svar
303 visningar
TB16 behöver inte mer hjälp
TB16 182 – Fd. Medlem
Postad: 16 jun 2019 18:14 Redigerad: 16 jun 2019 18:14

Beräkna antal poäng för varje match

Uppgift:

Our football team finished the championship. The result of each match look like "x:y". Results of all matches are recorded in the collection.

For example: ["3:1", "2:2", "0:1", ...]

Write a function that takes such collection and counts the points of our team in the championship. Rules for counting points for each match:

if x>y - 3 points
if x<y - 0 point
if x=y - 1 point
Notes:

there are 10 matches in the championship
0 <= x <= 4
0 <= y <= 4

Mitt försök att lösa uppgiften:

int points(const char* const games[10]) {
int points = 0;
int x,y;
char myString[10];
char c;

for(int i = 0; i < 10; i++){

myString[0] = games[i];
x = myString[0]-'0';
y = myString[2]-'0';

if(x>y)
{
points+=3;
}
else if(x=y)
{
points+=1;
}
else if(x<y){
points +=0;
}
}

return points;

}

Fråga:
Jag klarar ett test, men får felmeddelandet: "Expected: 10 Submitted: 16". Gissar att det har att göra med
"myString[0] = games[i];" ? Min tanke är att ta varje textsträng från games-arrayen och lägga strängen i en array av typen char, så att jag sedan jämföra värdena på minnesplats 0 och 2 i myString-arrayen och beräkna poängen. Någon som ser vad jag gör för fel?  



Affe Jkpg 6630
Postad: 16 jun 2019 21:09 Redigerad: 16 jun 2019 22:43

Du gör många fel bl.a.

games[15]

i+=3

x, y och myString behövs ej

if(games[i] > games[i+2]).....

Använd annars med fördel struct

Affe Jkpg 6630
Postad: 16 jun 2019 23:41 Redigerad: 16 jun 2019 23:46

Glöm mitt tidigare inlägg

char *myString;

myString = games[i];

if(*myString>*(myString+2)......

TB16 182 – Fd. Medlem
Postad: 23 jul 2019 12:47
Affe Jkpg skrev:

Glöm mitt tidigare inlägg

char *myString;

myString = games[i];

if(*myString>*(myString+2)......

Jag har varit iväg och rest så såg ditt svar först nu. Lyckades lösa uppgiften tack vare din hjälp. Gjorde det på följande vis:

int points(const char* const games[10]) {

int points = 0; //int x,y;

char *myString;

char c;

for(int i = 0; i < 10; i++){

myString = games[i];

if(*myString>*(myString+2)) {

points += 3;

} else if(*myString<*(myString+2)) {

points += 0;

} else if(*myString==*(myString+2)) {

points += 1; }

}

return points;

}

Svara
Close