c语言——计算奇数之和与偶数之和的函数

计算奇数之和与偶数之和的函数
编写一个名为sum_odd_even的函数,调用它能计
算出正整数a和b之间(含a和b,且a<b)的奇数之和
与偶数之和。在主函数中输入整数a和b,并检查
满足0 < a < b-10,依次输出调用sum_odd_even函
数后得到的奇数和与偶数和。( filename: CP62.C )
要求和提示:
⑴ 输入和检查满足0<a<b-10可用下述语句:
do scanf("%d%d", &a, &b);
while( b-a<=10 || a<=0 );
⑵ 函数 sum_odd_even 要能同时计算奇、偶和。
⑶ 必须在主函数中输入数据和输出结果。
#include<stdio.h>
int sum_odd_even(int m,int n)
{int i,l,k;
l=k=0;
for( i=m;i<=n;i++)
if(i%2==1)
l+=i;return l;
for( i=m;i<=n;i++)
if(i%2==0)
k+=i;
return k;}
int main()
{int a,b;
do scanf("%d%d", &a, &b);
while( b-a<=10 || a<=0 );
printf("%d %d",sum_odd_even(a,b));
}

我想知道怎么改正 谢谢

int 类型的函数只能返回一个值,要返回两个,可以:
1 返回一个数组
2 定义全局变量
3 用我这种,传地址进去。

函数中间写return要慎重,执行遇到return就终止了,不运行return后面的计算

#include<stdio.h>
void sum_odd_even(int m,int n, int *so, int * se)
{
int i;
*so=*se=0;
for( i=m;i<=n;i++)
if(i%2==1)
*so+=i;
else
*se+=i;
}

int main()
{
int a,b,sum_odd=0,sum_even=0;
do scanf("%d%d", &a, &b);
while( b-a<=10 || a<=0 );
sum_odd_even(a,b,&sum_odd,&sum_even);
printf("%d %d",sum_odd,sum_even);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-03
int
类型的
函数
只能返回一个值,要返回两个,可以:
1
返回一个
数组
2
定义全局变量
3
用我这种,传地址进去。
函数中间写return要慎重,执行遇到return就终止了,不运行return后面的计算
#include<stdio.h>
void
sum_odd_even(int
m,int
n,
int
*so,
int
*
se)
{
int
i;
*so=*se=0;
for(
i=m;i<=n;i++)
if(i%2==1)
*so+=i;
else
*se+=i;
}
int
main()
{
int
a,b,sum_odd=0,sum_even=0;
do
scanf("%d%d",
&a,
&b);
while(
b-a<=10
||
a<=0
);
sum_odd_even(a,b,&sum_odd,&sum_even);
printf("%d
%d",sum_odd,sum_even);
}
第2个回答  2019-10-10
int
类型的函数只能返回一个值,要返回两个,可以:
1
返回一个数组
2
定义全局变量
3
用我这种,传地址进去。
函数中间写return要慎重,执行遇到return就终止了,不运行return后面的计算
#include<stdio.h>
void
sum_odd_even(int
m,int
n,
int
*so,
int
*
se)
{
int
i;
*so=*se=0;
for(
i=m;i<=n;i++)
if(i%2==1)
*so+=i;
else
*se+=i;
}
int
main()
{
int
a,b,sum_odd=0,sum_even=0;
do
scanf("%d%d",
&a,
&b);
while(
b-a<=10
||
a<=0
);
sum_odd_even(a,b,&sum_odd,&sum_even);
printf("%d
%d",sum_odd,sum_even);
}
第3个回答  2010-01-03
一个函数不能返回两个值吧
可以考虑用静态变量定义
这样连返回都省了
第4个回答  2010-01-03
哈哈。你错了,是这么回事的。。。。