为什么strcpy在第一个for循环中工作,而不是第二个?

时间:2017-04-05 23:23:00

标签: c strcpy

所以要开始这个,这不是完整的程序。我正在研究它,并遇到了这个问题。前三次我调用strcpy(在第一个for循环中)它编译没有问题。但是,第四次到第六次(在第二次for循环中)我收到错误消息"函数中调用"的参数太少,即使参数与第一个for循环中的参数相同。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <string.h>

#define ESC 27

struct lag {
char namn[20];
int gjorda;
int inslappta;
int poang;
};

int main(void) {
    struct lag temp, serie[] = {
    { "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, k, hemma, borta;


srand((unsigned)time(NULL));

do {


    for (k = 0; k <= 10; k += 2)
    {
        hemma = rand() % 8;
        borta = rand() % 8;
        serie[k].gjorda = +hemma;
        serie[k].inslappta = +borta;
        serie[k + 1].gjorda = +borta;
        serie[k + 1].inslappta = +hemma;

        printf("%s - %s \t \t %d - %d \n", serie[k].namn, serie[k + 1].namn, hemma, borta);
    }

        if (hemma > borta)
            serie[i].poang = +3;

        else if (hemma == borta)
        {
            serie[i].poang = +1;
            serie[i + 1].poang = +1;
        }

        else if (hemma < borta)
            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);     //These compile
                    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_s(temp.namn, serie[i].namn);   //These don't
                        strcpy_s(serie[i].namn, serie[j].namn);
                        strcpy_s(serie[j].namn, temp.namn);
                    }





    } while (_getch() != ESC);
return 0;

}

0 个答案:

没有答案