鱼C论坛

 找回密码
 立即注册
查看: 2937|回复: 3

c语言31

[复制链接]
发表于 2018-1-16 20:50:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
.编写程序,输入一批正整数(以零或负数为结束标志),求其中的偶数和。要求定义和调用函数even(n)判断数的奇偶性,当n为偶数时返回1,否则返回0。
#include <stdio.h>
int even(int n)
{
   if(n%2==0)
          return 1;
   else
          return 0;
}
int main()
{
        int n,sum=0;
        printf("Input integers: ");
           do{
                scanf("%d",&n);
                if(even(n)==1)
                        continue;
                else
                        sum=sum+n;
        }
        while(n>0);
        printf("The sum of the odd numbers is %d",sum);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-16 22:31:19 | 显示全部楼层
#include <stdio.h>


int even(int);

int main(void)
{
    int n, sum=0;

    printf("Input integers:\n");

        do
        {
                scanf("%d",&n);        
                if(even(n)==1)
                        sum += n;

                // 去掉scnaf最后 一个字符 \n
                while(getchar() != '\n')
                        continue;

    }while(n !=0 );

    printf("The sum of the odd numbers is %d \n",sum);


    return 0;
}



int even(int n)
{
   if(n%2==0)
          return 1;
   else
          return 0; 
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-17 03:41:50 | 显示全部楼层
#include <stdio.h>
int even(int n)
{
   if(n%2==0)
          return 1;
   else
          return 0;
}
int main()
{
        int n,sum=0;
        printf("Input integers: ");
           do{
                scanf("%d",&n);
                if(n<=0)
                break;
                else if(even(n)==1)
                sum=sum+n;
        }
        while(1);
        printf("The sum of the odd numbers is %d",sum);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-17 13:13:40 | 显示全部楼层
本帖最后由 mgsky1 于 2018-1-17 13:15 编辑

问题出在当输入0或者-1的时候,本来要退出了,但是还是会继续操作
还有就是你算的是奇数和,不是偶数,要把if条件改一下,函数返回值为1的时候相加
#include <stdio.h>
int even(int n)
{
   if(n%2==0)
      return 1;
   else
     return 0; 
}
int main()
{
        int n,sum=0;
        printf("Input integers: ");
          while(scanf("%d",&n) != EOF)
        {
            if(n <= 0) break;
            if(even(n)==0)
               continue;
             else
              sum=sum+n;
        }
        printf("The sum of the odd numbers is %d",sum);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-3 21:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表