长春网站制作最新招聘信息,05网课时作业答案,网站源码采集,wordpress 提示插件安装插件一、应用到的知识#xff1a;闰年问题#xff0c;数组#xff0c;for循环#xff0c;命令行参数#xff0c;atoi函数 1. 闰年问题#xff1a; 闰年 是指该年有366日#xff0c;即较平常年份多出一日。每400年就会有一次闰年#xff1b;或者年份是4的倍数#xff0c;但…一、应用到的知识闰年问题数组for循环命令行参数atoi函数 1. 闰年问题 闰年 是指该年有366日即较平常年份多出一日。每400年就会有一次闰年或者年份是4的倍数但不是100的倍数的也是闰年。如2000年是闰年2004年也是闰年但2001年却不是闰年。 2. 数组 连续有顺序的大小固定并且里面的数据类型一致的内存空间 3.for循环 for (初始化; 判断表达式; 变量处理){ 代码块; } 初始化用于初始化变量只有刚进入for循环时执行 判断表达式只要结果为真(不为0NULL等)就会执行代码块 变量处理对变量进行处理的如 i, i i * 2, i--等 注意 a. 首次进入for循环时变量处理不会进行只会进行初始化和判断表达式的。 b. 以上三个并不是必须填写的可以和while循环互相替换
// 代码输出
// 0
for (int i 0; i 1; i){printf(%d\n, i);
}// 将i 1改为 i 0 则第一次进入不满足条件不输出4. 命令行参数以下列代码为例
#include stdio.hint main(int argc, char* argv[]) {for (int i 0; i argc; i) {printf(arg %d: %s\n, i, argv[i]);}
} 上面示例中main()函数有两个参数argcargument count和argvargument variable。这两个参数的名字可以任意取但是一般来说约定俗成就是使用这两个词。
第一个参数argc是命令行参数的数量程序名也被计算在内。 第二个参数argv是一个数组保存了所有的命令行输入它的每个成员是一个字符串指针。 5.atoi函数 该函数在头文件stdlib.h中功能是将字符串转为整数(ASCII to int); 函数原型int atoi(const char* nptr); 返回值整型 参数字符串字符类型的数组 二、完整代码和功能演示视频
#include stdio.h
#include stdlib.h// 返回一年中的第几天的函数
int Day(int year, int month, int day){// 初始化月份天数没有0月空置 二月int months[13] {0, 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if ((year % 4 0 year % 100 ! 0) || (year % 400 0)){months[2] 29;} else {months[2] 28;}int ret 0;for (int i 1; i month; i){ret months[i];}return ret day;
}// 主函数的参数argc和argv
int main(int argc, char *argv[]){if (argc ! 4){printf(Usage: %s 2020 12 3\n, argv[0]);return 1;}int count 0;count Day(atoi(argv[1]), atoi(argv[2]), atoi(argv[3]));printf(The %s-%s-%s is %d days.\n, argv[1], argv[2], argv[3], count);return 0;
}计算当天年天数20231227 三、介绍 1. 定义数组装载一年中12个月的每天天数并且计算闰年将2月天数单独装载 2. 先封装一个函数Day(), 然后通过命令行参数输入日期 3. 在Day函数中计算从1月1日截止至输入日期的天数最后在主函数中输出 四、简单说一下外话 注意本次的代码仅仅做一个小练习所以并未对输入的参数进行设限故输入一些错误数据如13月或者51号或者 -2013年都是可以的。如果想要使代码更完善一些不妨自己添加一些判断。 本次代码难度很小可以利用库函数time.h中的函数简单完成但本次仅仅是为了了解一些知识并不对time.h库进行介绍 制作不易还望点赞评论支持一下谢谢