所以要开始这个,这不是完整的程序。我正在研究它,并遇到了这个问题。前三次我调用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;
}