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?
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
Glöm mitt tidigare inlägg
char *myString;
myString = games[i];
if(*myString>*(myString+2)......
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;
}