奇数求和之用循环语句

奇数求和之用循环语句
这里是不是不可以这样写?或者说整个代码都错了?

img

img

你的i未进行初始化,i为随机值,且i的取值在m~n之间。

#include<stdio.h>
int main()
{
    int m, n;
    int i = 0;//对i进行初始化,否则i为随机值
    int sum = 0;
    scanf("%d %d", &m, &n);
    i = m;//i从m开始
    while (m <= i && i <= n)//i的取值范围在m~n之间
    {
        if (i % 2 != 0)
        {
            sum = sum + i;
        }
        i++;
    }
    printf("%d\n", sum);
    return 0;
}

img


下面的代码是不创建第三变量的写法

int main()
{
    int m, n;
    int sum = 0;
    scanf("%d %d", &m, &n);
    while (m <= n)//直接对m进行操作
    {
        if (m % 2 != 0)
        {
            sum = sum + m;
            m = m + 2;//当第m的值本来就为奇数时,直接进行加2
        }
        else //当第m的值为偶数时,直接进行加1变为奇数
        {
            m++;
        }
    }
    printf("%d\n", sum);
    return 0;
}

把 i 初始赋值为m,即从区间较小的数开始判断;

然后,while循环的条件只需要 i <= n就可以了,即i 最大到n。

修改如下:



#include <stdio.h>

int main(void){
    
    int m,n,i,sum=0;
    scanf("%d %d",&m,&n);
    
    i=m; // i 初始赋值为m,即从区间较小的数开始判断
    
    // 这里 只需要i<=n,即遍历最大到n
    while( i<=n){
        
        if(i%2!=0){
            sum= sum+i;
        }
        
        i++;
    }
    
    printf("%d", sum);
    
    return 0;
    
} 

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7532158
  • 你也可以参考下这篇文章:可能你看到的大部分教材里讲的指针和指针变量是一个概念,但是真的是这样吗?看完我这篇文章肯定会颠覆你的认知哦?
  • 除此之外, 这篇博客: 排序算法之快速排序,它为什么这么快?中的 2 代码解析 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    49-62行就是刚刚的例子中做的操作,具体在代码注释中已经写明。

    66,67行,分别递归处理左边和右边,最终完成整体排序。

    这里还有一个问题:为什么每次都要从右边开始找,而不能从左边开始找呢?

    如果从左边开始找,那么在这个状态时,i往右一步就停止了。这时候,如果交换基准数和指针i的元素,10会被交换到左边,不符合快速排序“左边的数都比基准数小”的限制。之所以要让指针j先动,就是因为,最后必须停在比基准数小的元素,只有右边先动才可以保证。

  • 您还可以看一下 CSDN讲师老师的【在线峰会】物联网全栈开发之道视频教程课程中的 【第一场】现代物联网应用系统构架与技术栈小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    输入示例:[2, 3, 4, 5, 6, 7, 8, 9] 期望输出示例:24

    解决方案: 我们可以使用一个for循环来遍历列表中的每个数字。对于每个数字,我们可以使用条件语句来判断它是否为奇数。如果是奇数,我们就把它累加到一个计数器中。最后,返回计数器的值即为奇数的总和。

    下面是Python代码示例:

    def sum_of_odd_numbers(numbers):
        total = 0
        for number in numbers:
            if number % 2 != 0:  # 判断是否为奇数
                total += number  # 累加奇数
        return total
    
    # 执行示例
    numbers = [2, 3, 4, 5, 6, 7, 8, 9]
    print(sum_of_odd_numbers(numbers))
    
    # 输出结果:24
    

    使用该函数可以求出任意列表中奇数的总和。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^