求大神带小白,C语言指针,程序显示没问题,但是运行不出结果

你是理想 2018-04-13 08:10:28
#include<stdio.h>
void junzhi(int a[],int n,int *x,int *y)
{
int i=0,sum=0,t,z=0;
for(i=0;i<=9;i++)
{scanf("%d",&a[i]);
sum=sum+a[i];}
t=1.0*sum/n;
for(i=0;i<=9;i++)
{scanf("%d",&a[i]);
if(a[i]<t)
z++;}
*x=t;
*y=z;

}
int main()
{
int a[10],i;
int jun,di;
printf("请输入成绩:");
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
junzhi(a,10,&jun,&di);
printf("%d%d\n",jun,di);
return 0;
}
...全文
815 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_39133990 2018-05-05
  • 打赏
  • 举报
回复
顺便多说一句,这种求值类型的,我个人感觉用指针效果不是很好。我之前也一直陷在了指针的怪圈里,指针还是要用在数组这里地方更有用。
weixin_39133990 2018-05-05
  • 打赏
  • 举报
回复
你是想求均值和低于均值的计数是吗?我也是初学者,不一定对,可能有几个问题:1)你的函数原型没有返回值;2)函数原型里是直接调用数组,应该不需要scanf;3)确定不是浮点型变量?我根据你的文意,大概写了个你试试。如下: #include <stdio.h> double junzhi(double[], int); int count(double[], double); int main() { double a[10],jun; int di; printf("请输入成绩: \n"); for(int i=0;i<10;i++) scanf("%lf",&a[i]); jun=junzhi(a,10); di=count(a,jun); printf("均值是%lf,低于均值的数有%d个.\n",jun,di); return 0; } double junzhi(double a[], int n) { double ret_val; double sum=0.0; for(int i=0;i<n;i++) sum += a[i]; ret_val = sum/n; return ret_val; } int count(double a[], double t) { int ret_val=0; for(int i=0;i<n;i++) if(a[i]<t) ret_val++; return ret_val; } 如有不足之处,请多交流指正
uncle_rice_chn 2018-04-14
  • 打赏
  • 举报
回复
scanf往数组里存不需要取地址的,数组名就是这个数组的地址

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧