C语言的函数定义里指针变量可以当作数组用吗?
这是个改错题,我只是问问这里面的fun函数里面明明要放两个双精度数组,怎么在定义的时候是{double*s,doublew}呢?#include<stdio.h>#def...
这是个改错题,我只是问问这里面的fun函数里面明明要放两个双精度数组,怎么在定义的时候是{double *s,double w}呢?
#include <stdio.h>
#define SIZE 20
fun(double *s,double *w)
{ int k,i; double sum;
for (k=2,i=0;i<SIZE;i++)
{ s[i]=k; k+=2; }
/************found************/
sun=0.0;
for(k=0,i=0;i<SIZE;i++)
{ sum+=s[i];
/************found************/
if (i+1%5==0)
{ w[k]=sum/5;sum=0;k++;}
}
return k;
}
main()
{ double a[SIZE],b[SIZE/5];
int i,k;
k=fun(a,b);
printf("The original data:\n");
for (i=0;i<SIZE;i++)
{ if(i%5==0) printf("\n");
printf("%4.0f",a[i]);
}
printf("\n\nThe result:\n");
for(i=0;i<k;i++) printf("%6.2f ",b[i]);
printf("\n\n");
} 展开
#include <stdio.h>
#define SIZE 20
fun(double *s,double *w)
{ int k,i; double sum;
for (k=2,i=0;i<SIZE;i++)
{ s[i]=k; k+=2; }
/************found************/
sun=0.0;
for(k=0,i=0;i<SIZE;i++)
{ sum+=s[i];
/************found************/
if (i+1%5==0)
{ w[k]=sum/5;sum=0;k++;}
}
return k;
}
main()
{ double a[SIZE],b[SIZE/5];
int i,k;
k=fun(a,b);
printf("The original data:\n");
for (i=0;i<SIZE;i++)
{ if(i%5==0) printf("\n");
printf("%4.0f",a[i]);
}
printf("\n\nThe result:\n");
for(i=0;i<k;i++) printf("%6.2f ",b[i]);
printf("\n\n");
} 展开
展开全部
数组名和指针是一样的,fun(double *s,double *w)改成fun(double s[],double w[])是一样的,
追问
谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询