我现在已经在这个问题上摸不着头脑了。
我试图编写一个程序,在6个曲棍球比赛中随机生成得分并将结果分配给某些值。然而,获奖团队获得的分数(3分为胜利,1分为平局)似乎没有正确存储在帖子中的帖子中我试图将它们添加到(serie [ i] .poang),因为程序的最后部分只打印出每个团队的得分为" 0"当我运行程序时。我最好的猜测是,if-else语句可以分配分数,但我自己找不到任何东西。
这些变量是用瑞典语写的,所以请继续询问是否有任何相关内容。先谢谢!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <string.h>
#define ESC 27
struct lag { //Struct team, char name, int goals made, int goals let in, int points
char namn[20];
int gjorda;
int inslappta;
int poang;
};
int main(void) {
struct lag temp, serie[] = { //The names of several swedish hockey teams
{"Bryn\204s", 0, 0, 0},
{"Djurg\206rden", 0, 0, 0},
{"Fr\224lunda", 0, 0, 0},
{"F\204rjestad", 0, 0, 0},
{"HV 71 ", 0, 0, 0},
{"Link\224ping", 0, 0, 0},
{"Lule\206 ", 0, 0, 0},
{"MODO ", 0, 0, 0},
{"R\224gle ", 0, 0, 0},
{"Skellefte\206", 0, 0, 0},
{"S\224dert\204lje", 0, 0, 0},
{"Timr\206 ", 0, 0, 0}
};
int i, j, hemma, borta;
srand((unsigned) time(NULL));
do {
system("cls");
for (i = 0; i <= 10; i += 2) {
hemma = rand() % 8; //Both teams are assigned random goals
borta = rand() % 8;
serie[i].gjorda = serie[i].gjorda + hemma;
serie[i].inslappta = serie[i].inslappta + borta;
serie[i + 1].gjorda = serie[i + 1].gjorda + borta;
serie[i + 1].inslappta = serie[i + 1].inslappta + hemma;
printf("%s - %s \t \t \t \t %d - %d \n", serie[i].namn, serie[i + 1].namn, hemma,
borta); //The results of each game is printed out
}
if (hemma > borta) //Score assignment, this is where I think the problem is
serie[i].poang = serie[i].poang + 3;
else if (hemma == borta) {
serie[i].poang = serie[i].poang + 1;
serie[i + 1].poang = serie[i + 1].poang + 1;
} else if (hemma < borta)
serie[i + 1].poang = serie[i + 1].poang + 3;
for (i = 0; i < 11; i++)
for (j = i + 1; j < 12; j++)
if (serie[j].poang < serie[i].poang) {
temp.poang = serie[i].poang;
serie[i].poang = serie[j].poang;
serie[j].poang = temp.poang;
temp.gjorda = serie[i].gjorda;
serie[i].gjorda = serie[j].gjorda;
serie[j].gjorda = temp.gjorda;
temp.inslappta = serie[i].inslappta;
serie[i].inslappta = serie[j].inslappta;
serie[j].inslappta = temp.inslappta;
strcpy(temp.namn, serie[i].namn);
strcpy(serie[i].namn, serie[j].namn);
strcpy(serie[j].namn, temp.namn);
}
for (i = 0; i < 11; i++)
for (j = i + 1; j < 12; j++)
if (serie[j].poang == serie[i].poang)
if ((serie[j].gjorda - serie[j].inslappta) < (serie[i].gjorda - serie[i].inslappta)) {
temp.poang = serie[i].poang;
serie[i].poang = serie[j].poang;
serie[j].poang = temp.poang;
temp.gjorda = serie[i].gjorda;
serie[i].gjorda = serie[j].gjorda;
serie[j].gjorda = temp.gjorda;
temp.inslappta = serie[i].inslappta;
serie[i].inslappta = serie[j].inslappta;
serie[j].inslappta = temp.inslappta;
strcpy(temp.namn, serie[i].namn);
strcpy(serie[i].namn, serie[j].namn);
strcpy(serie[j].namn, temp.namn);
}
for (i = 0; i <= 11; i++) {
printf(" %s \t \t %d - %d \t \t %d \n", serie[i].namn, serie[i].gjorda, serie[i].inslappta, serie[i].poang);
}
} while (_getch() != ESC);
return 0;
}