| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 424 人关注过本帖
标题:数组的调用问题
只看楼主 加入收藏
ybyc9999
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2015-1-24
结帖率:90%
收藏
已结贴  问题点数:10 回复次数:7 
数组的调用问题
#include <stdio.h>
#include <iostream>

int main(void)
{
    void test(int v);
    int a[10]={1,2,3,4,-1,-2,-3,-4,2,3};
    int i;
   
    for(i=0;i<10;i++)
    {
        printf("%d ",&a[i]);
        if(i==4)printf("\n");            
    }
    printf("\n");   
   
    for(i=0;i<10;i++)
    {
        test(&a[i]);            
    }
    system("pause");
    return 0;
}

void test(int v)
{
     if(v>0)printf("%d ",v);
     else printf("%d ",v);
}

这个为什么调用test(&a[i]); 会失败,请大神指点
搜索更多相关主题的帖子: include 
2015-02-07 09:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:3 
“这个为什么调用test(&a[i]); 会失败”
------ 别人能听懂“失败”是个什么情况吗?根本不知道你调用它后,机器死机了,还是地球被灭了。

很简单的事儿,你编译失败,贴出编译器给出的错误信息:
 'test' : cannot convert parameter 1 from 'int *' to 'int'
2015-02-07 10:09
young
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:223
专家分:160
注 册:2004-9-5
收藏
得分:3 
数据类型不匹配,编译会报错。
需要的参数是int型的,你传入的参数是(int*)型的
两种改法:
1传数组的值进去
    test(a[i]);
2把地址强行转换为int
    test((int)(&a[i]));

如果你爱C语言,请你爱指针; 如果你爱指针,请你爱指针的指针;
2015-02-07 10:11
奋斗五天
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2014-9-16
收藏
得分:3 
#include <stdio.h>
#include <iostream>

int main(void)
{
    void test(int v);
    int a[10]={1,2,3,4,-1,-2,-3,-4,2,3};
    int i;
   
    for(i=0;i<10;i++)
    {
        printf("%d ",a[i]);
        if(i==4)printf("\n");            
    }
    printf("\n");   
   
    for(i=0;i<10;i++)
    {
        test(a[i]); //你传的参数与函数所需的参数不一致,&a[i]是地址类,而函数需要int类         
    }
    system("pause");
    return 0;
}

void test(int v)
{
     if(v>0)printf("%d ",v);
     else printf("%d ",v);
}
2015-02-07 11:05
ybyc9999
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2015-1-24
收藏
得分:0 
回复 3楼 young
#include <stdio.h>
#include <iostream>

int ave,max,min;
int main(void)
{
    int ave(int b[]);
    int max(int c[]);
    int min(int d[]);

    int a[10]={65,48,89,38,56,74,87,90,66,88};
    ave=ave(a);
    max=max(a);
    min=min(a);

    printf("ave=%d",ave);
    printf("max=%d",max);
    printf("min=%d",min);

    system("pause");
    return 0;
}

int ave(int b[])
{
    int sum=0,i;
    for(i=0;i<10;i++)
    {
         sum+=b[i];           
    }
    ave=sum/10;
    return ave;
}

int max(int c[])
{
    int i,max=c[0];
    for(i=0;i<10;i++)
    {
         if(c[i]>max)
         {
             max=c[i];        
         }              
    }
    return max;
}

int min(int d[])
{
    int i,max=d[0];
    for(i=0;i<10;i++)
    {
          if(d[i]<min)
          {
              min=d[i];        
          }            
    }
    return min;
}


恩,这个程序我修改后了,为什么也不行
2015-02-07 11:18
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:3 
回复 5楼 ybyc9999
变量和函数名字不能一样

总有那身价贱的人给作业贴回复完整的代码
2015-02-07 11:19
ybyc9999
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2015-1-24
收藏
得分:0 
回复 6楼 embed_xuel
恩,明白了谢谢
2015-02-07 11:33
邵蜜柚
Rank: 2
来 自:权大大
等 级:论坛游民
帖 子:79
专家分:86
注 册:2015-2-8
收藏
得分:0 
明显的test也应该用指针型啊。

请给你男神一个爱你的理由。
2015-02-08 11:06
快速回复:数组的调用问题
数据加载中...
 
   



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

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