请编写一个函数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);
}
求解释为什么不对。
展开
 我来答
qmg1023
推荐于2018-05-04 · TA获得超过888个赞
知道小有建树答主
回答量:804
采纳率:0%
帮助的人:909万
展开全部

*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);
}
空雪梦见
2013-12-02 · TA获得超过5598个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1212万
展开全部
int *a,*obb=0,*even=0;

不是给你这么用的……都指向0了还如何保存结果(汗
...
int *a,obb=0,even=0;
...
fun (a,n,&obb,&even);
...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式