为什么我的程序没有打印出我想要的值?

时间:2017-04-07 17:14:00

标签: c if-statement

我现在已经在这个问题上摸不着头脑了。

我试图编写一个程序,在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;
}

0 个答案:

没有答案