目前主要分为三个专栏,后续还会添加:
专栏如下: 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++;elsecounta++;}printf("%d %d",counta,countb);}
代码 3:
AI写的
#include <stdio.h>int main()
{int N, i;int odd_count = 0; // 奇数计数器int even_count = 0; // 偶数计数器// 读取用户输入的正整数Nscanf("%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的偶数计数器。
输入函数 scanf
: scanf
是用于从标准输入读取格式化输入的函数。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,并且是后置形式,意味着增加操作会在表达式求值之后进行。
输出函数 printf
: printf
函数用于将格式化的数据输出到标准输出设备。"%d %d\n"
是格式字符串,其中%d
是格式说明符,用于输出整数,\n
是换行符,用于输出完成后换到下一行。
函数返回值 return 0;
: return 0;
表示程序成功完成,并且没有错误。在main
函数中,返回0通常表示程序正常结束。
注释:
单行注释:使用//
,注释直到行尾的内容。
多行注释:使用/*
开始,*/
结束,可以跨越多行。
代码的可读性: 良好的代码风格,如适当的变量命名、空格和缩进,可以提高代码的可读性,使其他人更容易理解和维护代码。