| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 22447 人关注过本帖
标题:怎么定义一个,让用户输入大小的数组?(详细点说明)
只看楼主 加入收藏
cnycompany
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-12-11
结帖率:0
收藏
已结贴  问题点数:20 回复次数:10 
怎么定义一个,让用户输入大小的数组?(详细点说明)
如题。
搜索更多相关主题的帖子: 用户 
2011-12-11 16:26
lowkey_c
Rank: 2
等 级:论坛游民
帖 子:19
专家分:28
注 册:2011-10-14
收藏
得分:3 
举个例子:
main()
{
   int a[],i;
    for(i=0i>n;i++)
    scanf("%d",&a[i]);
    printf("%d ",a[i]);
}

2011-12-11 16:49
easonchanel
Rank: 2
等 级:论坛游民
帖 子:18
专家分:41
注 册:2011-8-23
收藏
得分:3 
程序代码:
#include <stdio.h>
#include <malloc.h>

int main()
{
    printf("输入数组大小:\n");
    int size;
    scanf("%d",&size);

    int i;

    char * array = (char*)malloc(size * sizeof(int));
   
    for(i=0;i<size;i++)
    {
        printf("请输入数组元素!\n");
        scanf("%d",&array[i]);
        printf("array[%d]=%d\n",i,array[i]);
    }
    free(array);
    return 0;
   
}
记得释放就行
2011-12-11 17:09
easonchanel
Rank: 2
等 级:论坛游民
帖 子:18
专家分:41
注 册:2011-8-23
收藏
得分:0 
当大小不知道时,要动态分配内存,最后记得释放
2011-12-11 17:10
wigen2008
Rank: 2
等 级:论坛游民
帖 子:3
专家分:15
注 册:2011-12-6
收藏
得分:3 
一般数组的定义是不能用变量来作为维数的,
如:int a[n]是不行的;
数组的维数要用常量表达式定义,此常量表达式之恩那个包含整型字面值常量和枚举常量或用常量表达式初始化的const对象,非const变量以及要运行阶段才知道其值得const变量都不能用于定义数组的维数。
要满足你所说的用户输入数组大小的要求,就要用动态数组。
用整型变量来举个例子如下:
C++中用下面定义:
int n;
std::cin >> n;
int *a = new int[n];
C语言中可以用malloc:
int n;
scanf("%d", &n);
int *a = (int*)malloc(n * sizeof(int));

要追加一点说明就是动态数组是存储在堆上的,用完了一定要释放内存,否则会造成内存泄露。
释放内存的时候,malloc申请的内存free来释放,new申请的内存用delete释放。
2011-12-11 17:18
zhangdong151
Rank: 1
来 自:西安
等 级:新手上路
帖 子:2
专家分:3
注 册:2011-12-11
收藏
得分:3 
举个单纯用C语言基础知识说明的例子
void maim ()
{
  int a[100],i,n;
  scanf("%d",&n);
  for(i=0;i<=n;i++)
  scanf("%d",&a[i]);
  printf("%d\n",a[i]);
}
注意n<=100
2011-12-11 17:53
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:3 
有的编译器是支持用变量来定义数组的大小的.
否则,可以采用动态内存分配的方法来实现之.

★★★★★为人民服务★★★★★
2011-12-11 18:21
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:3 
回复 7楼 cnfarer
有编译器支持变量定义的数组吗?比如?

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-12-11 18:55
编程的乐趣
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:229
专家分:1027
注 册:2011-4-4
收藏
得分:3 
.
2011-12-11 18:56
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
回复 8楼 waterstar
minGW (GCC)
当然你在数组定义后,不能企图通过改变变量的值而改变数组的大小

[ 本帖最后由 cnfarer 于 2011-12-11 19:20 编辑 ]

★★★★★为人民服务★★★★★
2011-12-11 19:16
快速回复:怎么定义一个,让用户输入大小的数组?(详细点说明)
数据加载中...
 
   



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

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