| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 735 人关注过本帖
标题:求高人解答 关于数组的问题
只看楼主 加入收藏
when159357
Rank: 2
等 级:论坛游民
帖 子:50
专家分:71
注 册:2009-11-11
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:13 
求高人解答 关于数组的问题
我想在主函数里定义一个数组  然后在子函数里输入数组的每个元素  请问怎么做  
搜索更多相关主题的帖子: 解答 高人 
2010-03-15 21:21
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:10 

int main(void)
{
    int a[10], i;
    fun(a, 10);
    for(i = 0; i < 10; i ++)
    {
        printf("a[%d] = %d\n", i, a[i]);
    }
}

void fun(int *p, int n)
{
    int i;
    for(i = 0; i < n; i++)
    {
        scanf("%d",  p+i);
    }
}
2010-03-15 21:30
when159357
Rank: 2
等 级:论坛游民
帖 子:50
专家分:71
注 册:2009-11-11
收藏
得分:0 
回复 2楼 ldg628
貌似不能用啊   提示fun(a,10);有错误
2010-03-15 21:40
lixnkei
Rank: 4
来 自:樱之国度
等 级:业余侠客
帖 子:133
专家分:227
注 册:2008-5-13
收藏
得分:0 
这个只能用指针来解决了。。。。

没有指针的话,在主函数定义的数组是不能在其他函数中进行修改的。(或者在全局变量中定义,而不在主函数中定义)



[ 本帖最后由 lixnkei 于 2010-3-15 21:43 编辑 ]


老师说:会写代码的人多如牛毛,但写得很规范的却不多。代码要规范,养成好习惯~!
2010-03-15 21:41
studythec
Rank: 1
来 自:安徽阜阳
等 级:新手上路
帖 子:31
专家分:5
注 册:2010-3-13
收藏
得分:0 
#include"stdio.h"
 fun(int q1, int n)
{
    int i;
    for(i = 0; i < n; i++)
    {
        scanf("%d",  p+i);
    }
}
main()
{   
    int L;
    scanf("%d",L);
    int a[L], i;
    int *p;
    p=a[0];
    fun(*p,L);
     for(i = 0; i < L; i ++)
    {
     printf("a[%d] = %d\n", i, a[i]);
     }
}
没编译 不知对不对   新手 错了勿笑

菜鸟一个,在校学习,多多指教!
2010-03-15 21:41
lixnkei
Rank: 4
来 自:樱之国度
等 级:业余侠客
帖 子:133
专家分:227
注 册:2008-5-13
收藏
得分:0 
顺便帮楼主修正一下二楼的问题


程序代码:
# include <stdio.h>

void fun(int *, int); //函数前置声明

int main(void)
{
    int a[10], i;
    fun(a, 10);
    for(i = 0; i < 10; i ++)
    {
        printf("a[%d] = %d\n", i, a[i]);
    }

    return 0;
}

void fun(int *p, int n)
{
    int i;
    for(i = 0; i < n; i++)
    {
        scanf("%d",  p+i);
    }
}


老师说:会写代码的人多如牛毛,但写得很规范的却不多。代码要规范,养成好习惯~!
2010-03-15 21:43
studythec
Rank: 1
来 自:安徽阜阳
等 级:新手上路
帖 子:31
专家分:5
注 册:2010-3-13
收藏
得分:0 
#include"stdio.h"
fun(int *q1, int n)
{
    int i;
    for(i = 0; i < n; i++)
    {
        scanf("%d",  p+i);
    }
}
main()
{   
    int L;
    scanf("%d",L);
    int a[L], i;
    int *p;
    p=a[0];
    fun(*p,L);
     for(i = 0; i < L; i ++)
    {
     printf("a[%d] = %d\n", i, a[i]);
     }
}
错了一点

菜鸟一个,在校学习,多多指教!
2010-03-15 21:44
lixnkei
Rank: 4
来 自:樱之国度
等 级:业余侠客
帖 子:133
专家分:227
注 册:2008-5-13
收藏
得分:0 
回复 5楼 studythec
    scanf("%d",L);
    int a[L], i;

这样写是不对的说。。。虽然新的编译器不会报错。。。。但旧的编译器,如VC6,TC等是会报错的。。。


老师说:会写代码的人多如牛毛,但写得很规范的却不多。代码要规范,养成好习惯~!
2010-03-15 21:45
lixnkei
Rank: 4
来 自:樱之国度
等 级:业余侠客
帖 子:133
专家分:227
注 册:2008-5-13
收藏
得分:10 
回复 7楼 studythec
正确的写法

程序代码:
# include <stdio.h>
# include <malloc.h>

void Input (int * p, int l);
void Output(int * p, int l);

int main(void)
{
    int l;

    scanf("%d", &l); //确定数组长度

    int * p = (int *)malloc( l * sizeof(l)); //相当于你的a[L]
    Input(p, l);
    Output(p, l);
   
    return 0;
}

void Input (int * p, int l)
{
    int i;

    for(i=0; i<l; i++)
    {
        scanf("%d", p+i);
    }
   
    return;
}

void Output(int * p, int l)
{
    int i;
   
    for(i=0; i<l; i++)
    {
        printf("%d\n", *(p+i));
    }
   
    return;
}


老师说:会写代码的人多如牛毛,但写得很规范的却不多。代码要规范,养成好习惯~!
2010-03-15 21:55
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:0 
回复 2楼 ldg628
你在main函数前面声明一下就行了
void fun(int *p, int n);
2010-03-15 21:58
快速回复:求高人解答 关于数组的问题
数据加载中...
 
   



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

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