为了账号安全,请及时绑定邮箱和手机立即绑定

求最大值最小值,平均值的程序,请问哪里错了,错误有点多,小弟是菜鸟,谢谢了

求最大值最小值,平均值的程序,请问哪里错了,错误有点多,小弟是菜鸟,谢谢了

C++
萧十郎 2023-03-02 17:13:26
#include<stdio.h>int aMAX(int *a,int n){int m[100],max,i,*a;max=m[0];a=m;for(i=0; i<n; i++){if(max<m[i]) max=*(a+i);}return max;}int aMIN(int *a,int n){int m[100],min,i,*a;min=m[0];a=m;for(i=0; i<n; i++){if(min>m[i]) min=*(a+i);}return min;}int aAVE(int *a,int n){int sum,n,i,m[100],*a;double ave;a=m;sum=0;for(i=0; i<n; i++){sum+=*(a+i);}ave=sum/i;return ave;}int main(void){int m[100],i,n;int *a;a=m;printf("输入数字:");for(a=m; a<m+100;)scanf("%d",a++);printf("MAX=%d",aMAX(*a,n));printf("MIN=%d",aMIN(*a,n));printf("AVE=%lf",aAVE(*a,n));return 0;}
查看完整描述

2 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

int main(void)
{
int m[100],i,n;
int *a;
a=m;
printf("输入数字:");
for(a=m; a<m+100;)
scanf("%d",a++);
printf("MAX=%d",aMAX(*a,n));
printf("MIN=%d",aMIN(*a,n));
printf("AVE=%lf",aAVE(*a,n));
return 0;
}
这里面那个*a根本就是多余的,改成
for(i=0; i<00;i++)
scanf("%d",m[i]);
printf("MAX=%d",aMAX(m,n));
printf("MIN=%d",aMIN(m,n));
printf("AVE=%lf",aAVE(m,n));

我晕,你几个函数里都这样啊,你不会数组操作吗?
给你改一个吧,你试试该其他的
int aMAX(int *a,int n)
{
int max,i;
max=a[0];
for(i=0; i<n; i++)
{
if(max<a[i]) max=a[i];
}
return max;


不懂的话,在问吧


查看完整回答
反对 回复 2023-03-06
?
森栏

TA贡献1810条经验 获得超5个赞

非要用指针么?可以不用的,
再就是主函数中n没有赋值  
for(a=m; a<m+100;),这句话也有问题
一定要输入100个数才结束?,要控制输入一部分就可以结束的
if(max<m[i]) max=*(a+i);这个对吗?好像是子函数不能这么用的
还有子函数中的n,好像也不能用

查看完整回答
反对 回复 2023-03-06
  • 2 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信