| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1909 人关注过本帖
标题:我要定义一个数组,可是这个数组的元素的个数要根据我输入的元素的个数来确定 ...
只看楼主 加入收藏
feelings010
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-4-20
收藏
得分:0 

大侠,好像不行哦!

2007-04-25 12:09
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
C好像没有办法,只定义得足够大(可以应付所有情况),如果是C++的话可以用vector解决这个问题

雁无留踪之意,水无取影之心
2007-04-25 12:23
zy1437zy
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-4-25
收藏
得分:0 
以下是引用laigaoat2005在2007-4-23 21:39:12的发言:
刚才的有问题,现在好了:

#include<stdio.h>
main()
{
int n=0;
int i;
int num[n];
printf("输入数组大小:\n");
scanf("%d",&n);
printf("你的数组大小是:%d\n请输入所有的数\n",n);
for(i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
printf("你输入的数为:\a\n");
for(i=0;i<n;i++)
{
printf("%d\n",num[i]);
}
getchar();
}

c里面不能把数组大小定义为变量;int num[n];

2007-04-25 17:44
ycxue46
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-4-16
收藏
得分:0 
13楼在C语言中你的这个程序中数组的下标是不能用变量来代替的
2007-04-25 18:00
wood1314
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-4-21
收藏
得分:0 

13楼的别费劲了,告诉你,在c中,数组的大小一定是在声明是就决定好的了,所以你那个程序永远也不可能对.
数组大小一定是个常量,绝对不能是个变量.
要实现楼主要的功能 就用 动态分配吧,单链表可以实现.


/*说明 Elemtype 为任意的数据类型 如:int float char等 这里默认为int*/
/*单链表的节点类型node定义*/
typedef struct linknode
{
Elemtype data;
struct linknode *next;
}node;

/*建立一个单链表,输入一系列整数,以0做结束标志*/
void creat()
{
node *head,*p,*s;
int x, cycle=1; /*cycle是循环变量*/
head=(node*)malloc(sizeof(node)); /*建立头节点*/
p=head;
while(cycle)
{
scanf("%d",&x);
if(x!=0)
{
s=(node*)malloc(sizeof(node));/*建立后续节点*/
s->data=x;
p-next=s;
p=s;
}
else cycle=0;
}
p->next=NULL;
p=head;
head=heda>-next; /*删除头节点*/
free(p);
}

2007-04-25 20:53
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 
C99标准中的变长数组可以实现你的要求。

由于工作,N久都没来了!
2007-04-25 21:00
快速回复:我要定义一个数组,可是这个数组的元素的个数要根据我输入的元素的个数 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016446 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved