今天看了个程序其中的大部分地方都可以理解,但是有些地方有些不懂,所以请经过的大虾指点:
程序如下:
/*
请编写一个函数fun(int *a,int n,int *odd,int *even)
函数的功能是分别救出数组中所有奇数之和,及所以
今天看了个程序其中的大部分地方都可以理解,但是有些地方有些不懂,所以请经过的大虾指点:
程序如下:
/*
请编写一个函数fun(int *a,int n,int *odd,int *even)
函数的功能是分别救出数组中所有奇数之和,及所以
所有偶数之和,形参n给了数组中数据的个数;利用指针
odd返回奇数之和,利用even返回偶数之和
*/
#include
#include
#define N 20
fun(int *a,int n,int *odd,int *even)
{
int i,j=0,o=0;
for(i=0;i
{
if(a[i]%2==0)
o =a[i];
else
j =a[i];
}
*odd=o;
*even=j;
}
void main()
{
int a[N]={1,9,2,3,11,6},i,n=6,odd,even;
clrscr();
printf("The original data is :
");
for(i=0;i
printf("]",*(a i));
printf("
");
fun(a,n,&odd,&even); //这句是怎么回事;
printf("The sum of odd numbers: %d
",odd);
printf("The sum of even numbers: %d
",even);
system("pause");
}
1):其中有这么一句fun(a,n,&odd,&even);后面的&odd,&even有这么传递的吗,书上怎么没有介绍!
2):还有一点最疑惑的是,fun函数明明就没有返回值,为什么在主题目里还说利用 *odd,*even来返回!
3):还有在主函数中明明就没有接收从fun函数中的变量,在主函数中&odd,&even,明明没有进行任何运算,为什么可以输出正确的值出来!
这个问题困扰了我很久,请大侠们指教!!!!
展开
全部