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

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日