预定程序员 2023-07-28 22:11 采纳率: 67.4%
浏览 5
已结题

openjudge 1.5 奇数求和,C语言问题,看不出哪里错了

问题:openjudge 1.5 09奇数求和,在opejudge中提交显示错误,但是不知道哪里错了
题目:
计算非负整数 m 到 n(包括m 和 n )之间的所有奇数的和,其中,m 不大于 n,且n 不大于300。例如 m=3, n=12, 其和则为:3+5+7+9+11=35。

输入
两个数 m 和 n,两个数以一个空格分开,其中 0 <= m <= n <= 300 。
输出
输出一行,包含一个整数,表示m 到 n(包括m 和 n )之间的所有奇数的和
样例输入
7 15
样例输出
55


```c
#include<stdio.h>
#include<math.h>
int main()
{
    int m,n,sum=0,flaga=0,flagb=0;
    scanf("%d%d",&m,&n);
    if(m%2!=0)
    {
        flaga=1;//1表示奇数,0表示偶数 
    }
    if(n%2!=0)
    {
        flagb=1;
    }
    if(flaga==1&&flagb==1)  
    {
        for(int i=m;i<=n;i=i+2) 
        {
            sum+=i;
        }
    }
    else if(flaga==1&&flagb==0)
    {
        for(int i=m;i<n;i=i+2)
        {
            sum+=i;
        }
    }
    else if(flaga==0&&flagb==0)
    {
        for(int i=m+1;i<n;i=i+2)
        {
            sum+=i;
        }
    }
    else if(flaga==0&&flagb==1)
    {
        for(int i=m;i<n;i=i+2)
        {
            sum+=i;
        }
    }
    printf("%d",sum); 
    return 0;
}

img


  • 写回答

3条回答 默认 最新

  • qzjhjxj 2023-07-28 23:26
    关注

    题主的代码,考虑的太复杂了,修改如下,供参考:

    #include<stdio.h>
    #include<math.h>
    int main()
    {
        int m,n,sum=0,flaga=0,flagb=0;
        scanf("%d%d",&m,&n);
        //if/(m%2!=0)
        //{
        //    flaga=1;//1表示奇数,0表示偶数
        //}
        //if(n%2!=0)
        //{
        //    flagb=1;
        //}
        //if(flaga==1&&flagb==1)
        //{
            for(int i=m;i<=n;i++) //for(int i=m;i<=n;i=i+2) 修改
            {
                if (i % 2)   // 修改
                    sum+=i;
            }
        //}
        //else if(flaga==1&&flagb==0)
        //{
        //    for(int i=m;i<n;i=i+2)
        //    {
        //        sum+=i;
        //    }
        //}
        //else if(flaga==0&&flagb==0)
        //{
        //    for(int i=m+1;i<n;i=i+2)
        //    {
        //        sum+=i;
        //    }
        //}
        //else if(flaga==0&&flagb==1)
        //{
        //    for(int i=m;i<n;i=i+2)
        //    {
        //        sum+=i;
        //    }
        //}
        printf("%d",sum);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月6日
  • 已采纳回答 7月29日
  • 创建了问题 7月28日

悬赏问题

  • ¥15 VS2022 C++的相关代码问题咨询
  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥30 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码