请编写一个函数fun (int *a,int n,int *odd,int *even)
函数功能是分别求出数组中的所有奇数之和以及所有偶数之和。形参n给出数组中的数据个数;利用指针odd返回奇数和,利用even返回偶数之和。#include<stdio.h>...
函数功能是分别求出数组中的所有奇数之和以及所有偶数之和。形参n给出数组中的数据个数;利用指针odd返回奇数和,利用even返回偶数之和。
#include<stdio.h>
#define N 100
int b[N];
void fun (int *a,int n,int *obb, int *even)
{
int i,s=0,k=0;
for (i=0;i<n;i++)
{
if ((b[i]%2)==0)
k=k+b[i];
else
s=s+b[i];
}
*obb=s;
*even=k;
}
void main()
{
int n;
int i;
int *a,*obb=0,*even=0;
printf("请输入n\n");
scanf("%d",&n);
a=b;
printf("请输入%d个数字",n);
for (i=0;i<n;i++)
{
scanf("%d",(a+i));
}
a=b;
fun (a,n,obb,even);
printf("%d %d\n",*obb,*even);
}
求解释为什么不对。 展开
#include<stdio.h>
#define N 100
int b[N];
void fun (int *a,int n,int *obb, int *even)
{
int i,s=0,k=0;
for (i=0;i<n;i++)
{
if ((b[i]%2)==0)
k=k+b[i];
else
s=s+b[i];
}
*obb=s;
*even=k;
}
void main()
{
int n;
int i;
int *a,*obb=0,*even=0;
printf("请输入n\n");
scanf("%d",&n);
a=b;
printf("请输入%d个数字",n);
for (i=0;i<n;i++)
{
scanf("%d",(a+i));
}
a=b;
fun (a,n,obb,even);
printf("%d %d\n",*obb,*even);
}
求解释为什么不对。 展开
2个回答
展开全部
*obb=0,*even=0不应该是指针,否则需要分配内存。
#include<stdio.h>
#define N 100
int b[N];
void fun (int *a,int n,int *obb, int *even)
{
int i,s=0,k=0;
for (i=0;i<n;i++)
{
if ((b[i]%2)==0)
k=k+b[i];
else
s=s+b[i];
}
*obb=s;
*even=k;
}
void main()
{
int n;
int i;
int *a,obb=0,even=0;
printf("请输入n\n");
scanf("%d",&n);
a=b;
printf("请输入%d个数字",n);
for (i=0;i<n;i++)
{
scanf("%d",(a+i));
}
a=b;
fun (a,n,&obb,&even);
printf("%d %d\n",obb,even);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询