| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 929 人关注过本帖
标题:求助这程序错在那里?
只看楼主 加入收藏
kennyhip
该用户已被删除
收藏
已结贴  问题点数:10 回复次数:11 
求助这程序错在那里?
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: return please numbers include 
2010-05-06 17:58
lzdrifter
该用户已被删除
收藏
得分:2 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-06 18:19
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:2 
回复 楼主 kennyhip
s=myarray(b[10],10);
改成
 s=myarray(b,10);
就对了。
你自定义函数的形参int[]实际上是一个int型的指针。
所以,实参应该是一个内存地址,所以实参应该是数组名。

希望对你有帮助。
呵呵,很高兴认识你,以后多多交流!


南国利剑
2010-05-06 18:54
kliulaiwanl
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-06 23:10
ruan0917
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-5-6
收藏
得分:0 
受教……
2010-05-06 23:15
一口三个汉堡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:155
专家分:525
注 册:2010-3-21
收藏
得分:1 
你在主函数输入的不是数组名而是数组元素,也就是一个值而已,但是在函数中却要其还要数组后面的数,这样就会出错了。

坚持做对的事情,而不是容易的事情。
2010-05-06 23:20
xueyuhanhai
Rank: 4
等 级:业余侠客
帖 子:90
专家分:238
注 册:2010-4-5
收藏
得分:1 
#include"stdafx.h"


//求和函数
int myarray(int a[],int n)
{   
    int i,sum=0;
    for(i=0;i<n;i++)
    sum+=a[i];
    return sum;
}



int main(int argc, char* argv[])
{
         int j,s,b[10];
         printf("please input 10 numbers:");
         for(j=0;j<10;j++)
            scanf("%d",&b[j]);
         s=myarray(b,10);//此处的b是地址的传递,而b[10]这个元素是一个值,而且是不存在的。
         printf("s=%d\n",s);
         printf("Hello World!\n");
         return 0;
}

2010-05-07 16:46
kennyhip
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-07 21:08
honey536
Rank: 2
来 自:山东
等 级:论坛游民
帖 子:68
专家分:76
注 册:2010-4-20
收藏
得分:2 
正确代码:
#include"stdio.h"
int myarray(int[],int n);
main()
{  int j,s,b[10];
   printf("please input 10 numbers:");
   for(j=0;j<10;j++)
     scanf("%d",&b[j]);
     s=myarray(b,10);
     printf("s=%d\n",s);
}
int myarray(int a[],int n)
  { int i,sum=0;
    for(i=0;i<n;i++)
       sum+=a[i];
       return sum;
    }
数组和指针都是传首地址就可以了  且实参随形参的改变会改变就OK了

看了你的程序,没找出错误。还是群友帮忙看出的
以后有问题欢迎加入编程群108668542
2010-05-07 21:43
xiaomanaruto
Rank: 6Rank: 6
等 级:侠之大者
帖 子:79
专家分:443
注 册:2010-4-1
收藏
得分:2 
#include"stdio.h"
int myarray(int[],int n);//这里应该是int myarray(int a[],int n);这里丢了数组名了。
main()
{  int j,s,b[10];
   printf("please input 10 numbers:");
   for(j=0;j<10;j++)
     scanf("%d",&b[j]);
     s=myarray(b[10],10);//这里应该是s=myarray(b,10);将要传递数组b的首地址。
     printf("s=%d\n",s);
}
int myarray(int a[],int n)
  { int i,sum=0;
    for(i=0;i<n;i++)
       sum+=a[i];
       return sum;
    }
这样程序就能运行了
2010-05-08 13:02
快速回复:求助这程序错在那里?
数据加载中...
 
   



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

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