#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;
}
不懂的话,在问吧
森栏
TA贡献1810条经验 获得超5个赞
非要用指针么?可以不用的,
再就是主函数中n没有赋值
for(a=m; a<m+100;),这句话也有问题
一定要输入100个数才结束?,要控制输入一部分就可以结束的
if(max<m[i]) max=*(a+i);这个对吗?好像是子函数不能这么用的
还有子函数中的n,好像也不能用
- 2 回答
- 0 关注
- 95 浏览
添加回答
举报
0/150
提交
取消