c语言中结构体中的一维数组的初始化(用的是codeblocks)它说我的c[]那一行有问题 20

#include<stdio.h>#include<stdlib.h>intmain(){intcount,i,k,j;j=0;structa{intlength;int... #include <stdio.h>
#include <stdlib.h>

int main()
{
int count,i,k,j;
j=0;
struct a{
int length;
int c[20]={1,2,3,4,5,6,7,8,9};
}b;
b.length=20;
printf("请输入i,k\n");
scanf("%d%d",&i,&k);
for(count=1;count<=20;count++)
{
b.c[i-1+count]=b.c[i-1+k+count];
}
b.length-=k;
printf("%d\n",b.length);
for(j=0;j<20;j++)
{
printf("a[%d]=%d\n",j,b.elem[j]);
}
}
展开
 我来答
匿名用户
2012-01-29
展开全部
结构体内定义数据成员时,是不能对于数组进行赋值的。

这样就行了:
#include <stdio.h>
#include <stdlib.h>

int main()
{
int count,i,k,j;
j=0;
struct a{
int length;
int c[20];//={1,2,3,4,5,6,7,8,9};
}b;
b.length=20;

for(j=0;j<20;j++)
b.c[j]=j+1;

printf("请输入i,k\n");
scanf("%d%d",&i,&k);
for(count=1;count<=20;count++)
{
b.c[i-1+count]=b.c[i-1+k+count];
}
b.length-=k;
printf("%d\n",b.length);
for(j=0;j<20;j++)
{
printf("a[%d]=%d\n",j,b.c[j]);
}
}
grotar
2012-02-04 · TA获得超过350个赞
知道小有建树答主
回答量:337
采纳率:50%
帮助的人:159万
展开全部
楼主的代码有诸多需改:
1.结构体里不能赋值,所以c必须是 c[20];
2.楼主需要考虑数组越界的情况,count+i-1+k <20 因为数组定义是从0开始 最大序号是19<20所以在使用循环时需考虑越界,因为这里越界恰好会出问题,不赘述。
3.输出b.c当中的元素时,楼主写成 b.elem 这个数组可没有定义过。猜测是 b.c吧。
综合修改之后代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int count,i,k,j;
j=0;
struct a{
int length;
int c[20];
} b;
b.length=20;
for(int t=1;t<10;t++) // b.c[20]={1,2,3,4,5,6,7,8,9}
b.c[t-1]=t;
printf("请输入i,k\n");
scanf("%d %d",&i,&k);
printf("%d\n",k);
for(count=0;count<20-i+1-k;count++)
{
b.c[i+count]=b.c[i+k+count];
}
b.length-=k;
printf("b.length=%d\n",b.length);
for(j=0;j<20;j++)
{
printf("a[%d]=%d\n",j,b.c[j]);
}
return 0;
}
不会报错,也能大致完成楼主的需求。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yinjinmi
2012-01-29 · 超过66用户采纳过TA的回答
知道答主
回答量:120
采纳率:0%
帮助的人:195万
展开全部
struct a{
int length;
int c[20];
a()
{
int i ;
for( i = 0 ; i < 10 ; ++i )
c[i] = i + 1 ;
}
}b;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
l6831095
2012-01-29
知道答主
回答量:59
采纳率:0%
帮助的人:24.2万
展开全部
结构体里不能初始化数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式