鱼C论坛

 找回密码
 立即注册
查看: 2547|回复: 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 | 显示全部楼层
  1. #include <stdio.h>


  2. int even(int);

  3. int main(void)
  4. {
  5.     int n, sum=0;

  6.     printf("Input integers:\n");

  7.         do
  8.         {
  9.                 scanf("%d",&n);       
  10.                 if(even(n)==1)
  11.                         sum += n;

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

  15.     }while(n !=0 );

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


  17.     return 0;
  18. }



  19. int even(int n)
  20. {
  21.    if(n%2==0)
  22.           return 1;
  23.    else
  24.           return 0;
  25. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> 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的时候相加
  1. #include <stdio.h>
  2. int even(int n)
  3. {
  4.    if(n%2==0)
  5.       return 1;
  6.    else
  7.      return 0;
  8. }
  9. int main()
  10. {
  11.         int n,sum=0;
  12.         printf("Input integers: ");
  13.           while(scanf("%d",&n) != EOF)
  14.         {
  15.             if(n <= 0) break;
  16.             if(even(n)==0)
  17.                continue;
  18.              else
  19.               sum=sum+n;
  20.         }
  21.         printf("The sum of the odd numbers is %d",sum);
  22.         return 0;
  23. }
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 18:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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