【发布时间】:2015-03-22 23:45:42
【问题描述】:
我有一个 c 程序,其中我有一组团队,团队应分为 4 组(A 组、B 组、C 组、D 组),每组由 4 支队伍组成。队伍随机分组。程序给我的错误是“错误类型 char[4] 不可分配”非常感谢 :)
代码如下:
#include <time.h>
#include <stdio.h>
#include <string.h>
int main(void) {
char teams[20][17] = {
"Germany", "Spain", "France", "Brazil",
"Italy", "Argentina", "USA","Uruguay",
"Hungry", "England", "Portugal", "Sweden",
"Netherlands", "Poland", "Mexico", "Croatia"
};
char groupA[20][4];
char groupB[20][4];
char groupC[20][4];
char groupD[20][4];
char s[20];
int gA = 0 ,gB = 0 , gC = 0 , gD = 0;
int r , i;
int ok = 0;
for (i = 0; i < 20; i++)
{
do{
ok=0;
printf("group = %s and team is %s", s,teams[i]);
if(s==0 && gA<4){ //Group A
groupA[gA]= teams[i];
gA++;
ok=1;
}
if(s==1 && gB<4){ //Group B
groupB[gB]= teams[i];
gB++;
ok=1;
}
if(s==2 && gC<4){ //Group C
groupC[gC]= teams[i];
gC++;
ok=1;
}
if(s==3 && gD<4){ //Group D
groupD[gD]= teams[i];
gD++;
ok=1;
}
} while (!ok);
}
for(i = 0;i < 4;i++) {
printf("%.15s\t\t%.15s\t\t%.15s\t\t%.15s\n",
groupA[i],
groupB[i],
groupC[i],
groupD[i]
);
}
【问题讨论】:
-
使用
strcpy复制字符串。 -
您的阵列中没有足够的空间来容纳字符串。
groupA是一个20个元素的数组,每个元素的类型都是char[4],它只能保存一个长度为3的字符串(+1表示终止'\0')。 -
此外,他还在 if 块中比较指针到整数!!
-
我不知道,我想我搞砸了。现在 strcpy 正在工作,但程序没有。抱歉,我还是个初学者.. @Meninx
-
while (!ok) 不起作用,因为循环一直在进行