黑马程序员技术交流社区
标题:
一个小问题????求指教!!感谢!!!
[打印本页]
作者:
FlyTrem
时间:
2014-3-22 19:28
标题:
一个小问题????求指教!!感谢!!!
#include<conio.h>
#include<stdio.h>
#define N 20
int fun(float *s,int n,float *aver)
{
float ave,t=0.0;
int count = 0,k,i;
for(k = 0;k < n;k++)
t + =s[k];
ave = t / n;
for(i=0;i<n;i++)
if(s[i]<ave)
count++;
*aver = ave
return count;
}
int main()
{
float s[30],aver;
int m,i;
printf("plase enter m:");
scanf("%d",&m);
printf("please enter %d mark:\n",m)
for(i=0;i<m;i++)
scanf("%f",s+i) ;
printf("the number of students :\n",fun(s,m,&aver));
printf("ave=%f\n",aver);
return 0;
}
复制代码
#include<conio.h>
#include<stdio.h>
#define N 20
int fun(float *s,int n,float *aver)
{
float ave,t=0.0;
int count = 0,k,i;
for(k = 0;k < n;k++)
t + =s[k];
ave = t / n;
for(i=0;i<n;i++)
if(s
<ave)
count++;
*aver = ave
return count;
}
int main()
{
float s[30],aver;
int m,i;
printf("plase enter m:");
scanf("%d",&m);
printf("please enter %d mark:\n",m)
for(i=0;i<m;i++)
scanf("%f",s+i)
printf("the number of students :\n",fun(s,m,&aver));
printf("ave=%f\n",aver);
return 0;
}
#include<conio.h>
#include<stdio.h>
#define N 20
int fun(float *s,int n,float *aver)
{
float ave,t=0.0;
int count = 0,k,i;
for(k = 0;k < n;k++)
t + =s[k];
ave = t / n;
for(i=0;i<n;i++)
if(s
<ave)
count++;
*aver = ave
return count;
}
int main()
{
float s[30],aver;
int m,i;
printf("plase enter m:");
scanf("%d",&m);
printf("please enter %d mark:\n",m)
for(i=0;i<m;i++)
scanf("%f",s+i)
printf("the number of students :\n",fun(s,m,&aver));
printf("ave=%f\n",aver);
return 0;
}
为什么把*aver = ave 改为aver = &ave 不对???感觉是对的?哪里的问题!!!!
作者:
周宇华
时间:
2014-3-22 20:34
本帖最后由 周宇华 于 2014-3-22 20:36 编辑
*aver = ave;的意思是把局部变量ave的值赋给形参指针aver(fun函数里的指针aver)所指向空间(即实参&aver)的内容,这样fun函数结束后,形参aver指针和局部变量ave都被释放,但是实参aver指针(main函数里的&aver)所指向空间的内容确实改变了;
改为aver = &ave后,只是将形参aver的指针指向修改了指向局部变量ave的地址,而没有改变实参&aver的指向,等到fun函数结束后,形参aver指针和局部变量ave都会被释放,实参&aver还是原来指向,且内容也根本没有变化。这样就表示函数没有起到效果。
作者:
FlyTrem
时间:
2014-3-22 20:38
周宇华 发表于 2014-3-22 20:34
*aver = ave;的意思是把局部变量ave的值赋给形参指针aver(fun函数里的指针aver)所指向空间(即实参&aver ...
Thanks!!!谢谢!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2