C语言程序,请高手帮忙看小弟错那里了?

#include<stdio.h>#defineN3#defineM4floataverage(int*p,intn);voidfew(int(*p)[4],intn);... #include<stdio.h>
#define N 3
#define M 4
float average(int *p,int n);
void few(int (*p)[4],int n);
int main(void)
{
float a[N][M]={{61,65,88,72},{90,55,89,99},{86,99,79,50}},b;
b=average(*a,12);
few(a,2);
printf("%f",b);
return 0;
}
float average(int *p,int n)
{
float i=0,j;

for(;p<p+n;p++)
i+=*p;
j=i/n;
return j;
}
void few(float (*p)[4],int n)
{
for(;*p<*p+M;(*p)++)
printf("%5f",(*(*(p+n))++));
}
*p为什么会是一个常量?那位能解释下吗?p不是一个指针变量吗? 为什么下面这个程序*p确可以进行递增运算呢?各位大哥帮帮忙小弟感激不尽~!

#include<stdio.h>
void f(int *p);
void main(void)
{
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
f(a[0]);

}
void f(int *p)
{int i=0;
for(i=0;i<12;i++)
printf("%5d",(*p)++);
}
展开
 我来答
楼惠祖F
2009-05-27
知道答主
回答量:65
采纳率:0%
帮助的人:16.8万
展开全部
错误一:b=average(*a,12);这时*a返回的是float[4]的一个指针,无法转化为int*
错误二:for(;*p<*p+M;(*p)++) 这里(*p)是一个常量,无法进行++操作。
错误三:printf("%5f",(*(*(p+n))++));错误同二。

不好意思。。。。是赋值的时候产生的问题,具体原因已经发给你。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式