| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 856 人关注过本帖
标题:数组问题……
只看楼主 加入收藏
物极必反
Rank: 2
等 级:论坛游民
帖 子:54
专家分:35
注 册:2011-10-3
结帖率:93.75%
收藏
已结贴  问题点数:10 回复次数:10 
数组问题……
# include <stdio.h>

int main (void)
{
    void f(int n);

    int x=5;

    f(x);

    getch();
}

void f(int n)
{
    int a[n];

    int i;

    for (i=0;i<=n;i++)
    {
        scanf("%d",a[i]);
        printf("%d  ",a[i]);

    }
}
错误 sdffff~1.c 19: 需要用常量表达式在 f 函数中
错误 sdffff~1.c 19: 结构体或数组的大小未知在 f 函数中
警告 sdffff~1.c 22: 参数'n'从未使用在 f 函数中
搜索更多相关主题的帖子: include 
2011-11-05 10:14
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
收藏
得分:0 
程序代码:
# include <stdio.h>

int main (void)
{
    void f(int n);
    int x=5;
    f(x);
    return 0;
}

void f(int n)
{
    int a[n];
    int i;
    for (i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
        printf("%d  ",a[i]);
    }
}
2011-11-05 10:27
weiwei555
Rank: 5Rank: 5
来 自:中国
等 级:职业侠客
帖 子:179
专家分:323
注 册:2011-3-4
收藏
得分:0 
回复 楼主 物极必反
你数组定义 int a[n]; 方括号里不可以是变量
数组定义方式:类型说明符  数组名[常量表达式];

还有你这里 scanf("%d",a[i]);  应该是scanf("%d",&a[i]);   要加上&
2011-11-05 10:29
wuyijiang07
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:74
专家分:177
注 册:2011-10-21
收藏
得分:0 
scanf("%d",&a[i]);没有使用地址符号&
2011-11-05 10:31
g79134682
Rank: 2
等 级:论坛游民
帖 子:80
专家分:75
注 册:2011-7-29
收藏
得分:0 
楼主没声明函数吧。
2011-11-05 10:35
无之小刀
Rank: 1
等 级:新手上路
帖 子:38
专家分:7
注 册:2011-7-11
收藏
得分:0 
我想二楼的也运行不了,理由同三楼的第一点..
楼主是想输入然后输出五次吧!想来是为了熟悉调用,要不用不着自定义函数,也不用数组..
程序代码:
# include <stdio.h>

int main (void)
{
    void f(int n);
    int x=5;
    f(x);
    return 0;
}

void f(int n)
{
    int a;  //这里如果要定义数组a[数字],只能是常量..
    int i;
    for (i=0;i<n;i++)
    {
        scanf("%d",&a);
        printf("%d\n",a);
    }
}# include <stdio.h>

int main (void)
{
    void f(int n);
    int x=5;
    f(x);
    return 0;
}

void f(int n)
{
    int a[5];  //如果是输入比五大的数,此法就不可用了..
    int i;
    for (i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
        printf("%d\n",a[i]);
    }
}


 
2011-11-05 11:12
劣质数轴
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:163
注 册:2010-11-19
收藏
得分:5 
C99之前,声明数组时在方括号内的确是只能使用整数常量表达式。
但是C99标准是允许
int n = 5;
float a[n];
这种形式的。
这创建了一种新的数组,称为变长数组即variable-length array,简称VLA。
使用较新版本的gcc编译器(如gcc 4.5.1)可以编译运行LZ的程序。但是,目前,很多编译器还是不支持,包括VC6,VS2008等。
另外,变长数组的“变”并不表示创建数组的后可以修数组大小,而是指其维的大小可以用变量指定。
变长数组的大小在创建后就是保持不变的。
2011-11-05 13:17
khaz
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:130
专家分:188
注 册:2011-4-21
收藏
得分:5 
可以使用c99标准编译,c99支持变长数组
2011-11-06 00:06
fexiong
Rank: 2
等 级:论坛游民
帖 子:6
专家分:31
注 册:2011-11-2
收藏
得分:0 
# include <stdio.h>

int main (void)
{
    void f(int n);

    int x=5;

    f(x);

    getch();
}

void f(int n)
{
    int a[n];//数组声明不能用变量,只能用常量

    int i;

    for (i=0;i<=n;i++)
    {
        scanf("%d",a[i]);//小了取地址符&
        printf("%d  ",a[i]);

    }
}


[ 本帖最后由 fexiong 于 2011-11-6 00:26 编辑 ]
2011-11-06 00:25
huanega
Rank: 3Rank: 3
来 自:内蒙古
等 级:论坛游侠
帖 子:117
专家分:192
注 册:2011-11-4
收藏
得分:0 
int a[n]; 不能这样定义昂

兴趣是编程最好的老师
2011-11-06 00:45
快速回复:数组问题……
数据加载中...
 
   



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

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