c语言 二维数组 但不知道其中的行和列
introws;intcols;inttdary[rows][cols];for(i=0;i<rows;i++){for(j=0;j<cols;j++){tdary[i]...
int rows;
int cols;
int tdary[rows][cols];
for (i=0;i<rows;i++){
for(j=0;j<cols;j++){
tdary[i][j]=i+j;
}
}
我想创造一个二维数组 可是我的行和列都是未知数; 所以我只能这么写 可是这样写是不是错误的啊? 有什么解决办法吗? 展开
int cols;
int tdary[rows][cols];
for (i=0;i<rows;i++){
for(j=0;j<cols;j++){
tdary[i][j]=i+j;
}
}
我想创造一个二维数组 可是我的行和列都是未知数; 所以我只能这么写 可是这样写是不是错误的啊? 有什么解决办法吗? 展开
2个回答
展开全部
是的这样是错误的,因为c不支持动态数组。
要么定义一个足够大的数组,要么用链表结构。
要么定义一个足够大的数组,要么用链表结构。
追问
求具体点
跪求
追答
具体点就说来话长了,没看过教材吗?例如谭浩强的《C语言程序设计》。
单链表结构,用结构体
struct tdary
{
int num1;
int num2;
struct tdary *next;
}
struct tdary *head,*p1,*p2;
p1=(struct tdary *)malloc(sizeof(int));
scanf("%d",&p1->num1);
scanf("%d",&p1->num2);
p1->next=0;
head=p1;
p1=(struct tdary *)malloc(sizeof(int));
scanf("%d",&p1->num1);
scanf("%d",&p1->num2);
p1->next=0;
p2=p1;
head->next=p2;
...(一般用循环语句搞定)
p1=head;
while(p1!=0)
{
printf(.....);
p1=p1->next;
}
大概这个意思。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询