C语言编程问题 指针数组 很简单的

#include<iostream>usingnamespacestd;intave(inta[]);voidmain(){inta[10];int*p;p=&a;cou... #include<iostream>
using namespace std;
int ave(int a[]);
void main()
{
int a[10];
int *p;
p=&a;
cout<<"please integer 10 numbers:"<<endl;
for(i=0;i<10;i++)
cin>>a[i]>>endl;
cout<<"The averger="<<ave()<<endl;
}
int ave(int a[])
{
int sum=0;
for(int i=0;i<10;i++)
sum+=a[i];
return sum/10;
}
我的哪里错了??而且我不太明白怎么用指针实现。。指针学的很差。。
展开
 我来答
百度网友65f00a7
2014-05-19 · 超过21用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:52.7万
展开全部
用数组是这样的:
#include<iostream>
using namespace std;
int ave(int a[]);
void main()
{
int a[10];
int *p; //这个是指针指向数组问题这里用不着
p=a;
int i;
cout<<"please integer 10 numbers:"<<endl;
for(i=0;i<10;i++)
cin>>a[i]; //cin不要加endl
cout<<"The averger="<<ave(a)<<endl; // 没有实参函数无法运行
}

int ave(int a[])
{
int sum=0;
for(int i=0;i<10;i++)
sum+=a[i];
return sum/10;
}
指针是这样的:
for(i=0;i<10;i++)
cin>>*(p+i);
cout<<"The averger="<<ave(p)<<endl;

定义int*p; 是说现在有个指针p,p=a是p指向数组a的首地址。然后你用指针p+i是分别指向数组a的不同地址,但是你输入的是数所以是*(p+i)。明白了么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenfenggang99
推荐于2016-10-09 · TA获得超过1850个赞
知道大有可为答主
回答量:1746
采纳率:75%
帮助的人:1723万
展开全部
#include<iostream>
using namespace std;
float ave(int a[]);
void main()
{
int a[10];
int *p;
int i;//定义
p=a;//a本来就是指针
cout<<"please integer 10 numbers:"<<endl;
for(i=0;i<10;i++)
cin>>a[i];//后面的不需要
cout<<"The averger="<<ave(a)<<endl;
}
float ave(int a[])
{
int sum=0;
for(int i=0;i<10;i++)
sum+=a[i];
return sum/10.0; //这好事float型
}
更多追问追答
追问

为什么我看书上都是p=&a 为什么直接是p=a??

追答
这个是因为 
i 是变量
&i 是获取地址
而 char s[];
这里的s 本来就是地址
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
白塔湖大明
2014-05-19 · 超过22用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:54.6万
展开全部
#include<iostream>
#include <iomanip>
using namespace std;
double arrAv(double * arrd,int length)
{
double average=0,sum=0;
for (int i=0;i<length;i++)
{
sum=sum+*(arrd+i);
}
average=sum/length;
return average;
}
void  main()
{
double arr[10];
for(int j=0;j<=9;j++)
{
cin>>arr[j];
}
double average=arrAv(arr,10);
cout <<setprecision(2) <<std::fixed <<average <<endl;
system("pause");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小飞号R
2014-05-19 · 超过21用户采纳过TA的回答
知道答主
回答量:137
采纳率:0%
帮助的人:68.2万
展开全部
#include<iostream>
using namespace std;
int ave(int a[]);
void main()
{
int a[10];
int *p;
p=a;
cout<<"please integer 10 numbers:"<<endl;
for(int i=0;i<10;i++)
cin>>*(p+i);
cout<<"The averger="<<ave(p)<<endl;
}
int ave(int a[])
{
int sum=0;
for(int i=0;i<10;i++)
sum+=a[i];
return sum/10;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式