函数(求问这题我哪里错了,为什么最后运行的结果不正确))
本题要求实现一个函数,计算N个整数中所有奇数的和(使用全局变量存储),同时实现一个判断奇偶性的函数。函数接口定义:
int even( int n );
int OddSum( int L, int N);
其中函数even将根据用户传入的参数n的奇偶性返回相应值:当n为偶数时返回1,否则返回0。函数OddSum负责计算并返回传入的所有奇数的和。
输入样例:
6
2 -3 7 88 0 15
输出样例:
Sum of ( -3 7 15 ) = 19
以下是我打的代码:
#include <stdio.h>
int even( int L);
int OddSum( int L, int N );
int main()
{
int L,N,i;
scanf("%d\n", &N);
printf("Sum of(");
for ( i=1; i<=N; i++ ) {
scanf("%d", &L);
if ( even(L)==0 )
printf(" %d ",L);
}
printf(")=%d\n",OddSum(L,N));
return 0;
}
int even(int L){
if(L%2 == 0)
return 1;
else
return 0;}
int OddSum(int L,int N){
int i,sum=0;
for(i=1;i<=N;i++){
if(even(L)==0){
sum=sum+L;
}
}
return sum;
} 求和函数错了,其实不用那么复杂
#include <stdio.h>
int even( int L);
int OddSum( int L, int N );
int main()
{
int L,N,i,sum = 0;
scanf("%d\n", &N);
printf("Sum of(");
for ( i=1; i<=N; i++ ) {
scanf("%d", &L);
if ( even(L)==0 ){
printf(" %d ",L);
sum += L;
}
}
printf(")=%d\n",sum);
return 0;
}
int even(int L){
if(L%2 == 0)
return 1;
else
return 0;}
int even(int L);
int OddSum(int L[], int N);
int main()
{
int L;
int N, i;
scanf("%d", &N);
printf("Sum of(");
for (i = 0; i < N; i++) {
scanf("%d", &L);
if (even(L) == 0)
printf(" %d ", L);
}
printf(")=%d\n", OddSum(L, N));
return 0;
}
int even(int L){
if (L % 2 == 0)
return 1;
else
return 0;
}
int OddSum(int L[], int N){
int i, sum = 0;
for (i = 0; i < N; i++){
if (even(L) == 0){
sum = sum + L;
}
}
return sum;
}
1、scanf 里面不要加\n
2、求和函数没有接收到全部数据,如果用函数的话,用数组比较好 将你的程序稍加修改,得到下面的程序。也正是因为你自己的程序,我就不作注释了
#include <stdio.h>
int even(int L);
int OddSum(int L);
int main()
{
int L, N, i,Sum = 0;
scanf("%d\n", &N);
for (i = 1; i <= N; i++)
{
scanf("%d", &L);
Sum += OddSum(L);
}
printf("所有奇数之和为:%d\n", Sum);
return 0;
}
int even(int L)
{
if (L % 2 == 0)
return 1;
else
return 0;
}
int OddSum(int L)
{
int i, sum = 0;
if (even(L) == 0)
{
sum += L;
}
return sum;
}
页:
[1]