牛客网刷题 | BC80 奇偶统计

发布于:2024-05-09 ⋅ 阅读:(30) ⋅ 点赞:(0)

目前主要分为三个专栏,后续还会添加:

        专栏如下:                 C语言刷题解析       C语言系列文章       我的成长经历

感谢阅读!

初来乍到,如有错误请指出,感谢!


描述

任意输入一个正整数N,统计1~N之间奇数的个数和偶数的个数,并输出。

输入描述:

一行,一个正整数N。(1≤N≤100,000)

输出描述:

一行,1~N之间奇数的个数和偶数的个数,用空格分开。


思路 : 

 用户输入数字

然后遍历数字

判断是奇数还是偶数就行

用一个变量来进行统计

如果是的话就++

读取输入:首先,你需要从输入中读取一个正整数N。

计数:然后,你可以初始化两个计数器,一个用于奇数,一个用于偶数。

循环遍历:接着,使用一个循环从1遍历到N(包括N),对于每个数字:

如果数字除以2的余数为0,那么它是一个偶数,增加偶数计数器。

如果余数不为0,那么它是一个奇数,增加奇数计数器。

输出结果:最后,输出奇数和偶数的计数。


代码 1 :

# include <stdio.h>
int main ()

{
    int n;

    scanf("%d",&n);
    if(n>= 1&& n<= 100000)//只有在这个范围内才继续
    {
        int Odd_number = 0;
        int even_number = 0;
        int i = 1;
        for(i=1;i<=n;i++)
        {

        //printf("%d",i); //后面调试后发现多此一举
        // int Odd_number = 0;
        // int even_number = 0;
        //上面两个定义变量需要放在for循环之外
         
            if(i%2==0)//判断偶数、否则为奇数
            //当一个数取模2为0的话 就走到这一步 然后就++
            {
                even_number++;//偶数 的话就 ++
            }
            else
            //否则 就 这边 ++
            {
               Odd_number++;//奇数  的话就 ++
            }
            //printf("%d %d",Odd_number,even_number);//error
        }
        printf("%d %d",Odd_number,even_number);
        //这句代码需要放在if判断外 不然在里面的话就会一直打印一直打印
    }
    else
    {
        printf("输入错误\n");
    }
    return 0;
}

代码 2 :

#include<stdio.h>
int main()
{
    
    int N;
    int counta=0;  //存放奇数个数
    int countb=0;  //存放偶数个数
    scanf("%d",&N);
    for(int i=1;i<=N;i++)
    {
        if(i%2==0)   //偶数
    
            countb++;
        else
            counta++;

    }
    printf("%d %d",counta,countb);
    
}

 代码 3: 

AI写的

#include <stdio.h>

int main() 
{
    int N, i;
    int odd_count = 0; // 奇数计数器
    int even_count = 0; // 偶数计数器

    // 读取用户输入的正整数N
    scanf("%d", &N);

    // 遍历1到N(包括N),统计奇数和偶数的个数
    for (i = 1; i <= N; i++) 
    {
        if (i % 2 == 0) 
        {
            even_count++; // 如果是偶数,增加偶数计数器
        } 
        else 
        {
            odd_count++; // 如果是奇数,增加奇数计数器
        }
    }

    // 输出奇数和偶数的个数
    printf("%d %d\n", odd_count, even_count);

    return 0;
}

 知识点 : 

预处理器指令 #include <stdio.h>: 这个指令告诉C语言的预处理器在实际编译之前包含标准输入输出库的头文件。stdio.h是“Standard Input Output”的缩写,包含了进行输入输出操作所需的函数和宏定义。

主函数 int main()main函数是每个C程序的入口点。它的返回类型是int,表示函数可以返回一个整数值给操作系统,通常用于表示程序的退出状态。

变量声明

int N:用于存储用户输入的正整数。

int i:用作循环计数器。

int odd_count = 0:初始化为0的奇数计数器。

int even_count = 0:初始化为0的偶数计数器。

输入函数 scanfscanf是用于从标准输入读取格式化输入的函数。scanf("%d", &N);这行代码告诉程序读取一个整数值,并将其存储在变量N的内存地址中。%d是格式说明符,表示期望读取一个整数值,&是取地址运算符,用于获取变量的内存地址。

循环结构 for

for (i = 1; i <= N; i++) 
{
    // loop body
}

这是一个for循环,它由三个部分组成:

初始化部分:i = 1,在循环开始前执行一次,初始化循环计数器。

条件部分:i <= N,每次循环迭代前检查条件是否满足,如果为真,则执行循环体;如果为假,则退出循环。

迭代部分:i++,在每次循环迭代后执行,递增循环计数器。

条件语句 if

if (i % 2 == 0) 
{
    // even number processing
} 

else 
{
    // odd number processing
}

if语句用于基于条件执行不同的代码块。i % 2 == 0是一个条件表达式,用于检查i是否能被2整除,以此来判断i是偶数还是奇数。

算术运算符 %%是取模运算符,用于计算两个数相除后的余数。在这里,它用于判断一个数是奇数还是偶数。

自增运算符 ++odd_count++even_count++是自增运算符的使用,它们将变量的值增加1,并且是后置形式,意味着增加操作会在表达式求值之后进行。

输出函数 printfprintf函数用于将格式化的数据输出到标准输出设备。"%d %d\n"是格式字符串,其中%d是格式说明符,用于输出整数,\n是换行符,用于输出完成后换到下一行。

函数返回值 return 0;return 0;表示程序成功完成,并且没有错误。在main函数中,返回0通常表示程序正常结束。

注释

单行注释:使用//,注释直到行尾的内容。

多行注释:使用/*开始,*/结束,可以跨越多行。

代码的可读性: 良好的代码风格,如适当的变量命名、空格和缩进,可以提高代码的可读性,使其他人更容易理解和维护代码。