2021.5.21学习笔记

Posted bit_zhy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021.5.21学习笔记相关的知识,希望对你有一定的参考价值。

今天主要的编程代码是我在进行c语言表驱动法练习,代码如下:

#include<stdio.h>
int month_function(int month, int year);
int leap(int year);
int main()
{
	int year, month;
	printf("请输入需要查询的年,月\\n");
	scanf_s("%d %d", &year, &month);
	printf("第%d年第%d月共有%d天!", year, month, month_function(month,year));
}
int month_function(int month, int year) {
	int uncertian;
	if (leap(year) == 1) {
		uncertian = 29;
	}
	else {
		uncertian = 28;
	}
	int all_month[12] = { 31,uncertian,31,30,31,30,31,31,30,31,30,31 };
	return all_month[month - 1];
}
int leap(int year) {
	if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
		return 1;
	}
	else {
		return 2;
	}

}

在编写代码的过程中,我遇到了很多问题,首先是C语言中返回值理解不明确。看了解释之后懂了:c语中,首先,;然后,名被作为一个变量处理;最后,函数的处理结果数据带回给调用数作为就被值赋给了(名)变量的。说白了就是一个函数被调用之后会呈现出一个值来,这个值就是return的返回值。

其次我很疑惑在

int month_function(int month, int year) {
	int uncertian;
	if (leap(year) == 1) {
		uncertian = 29;
	}
	else {
		uncertian = 28;
	}
	int all_month[12] = { 31,uncertian,31,30,31,30,31,31,30,31,30,31 };
	return all_month[month - 1];
}
int leap(int year) {
	if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
		return 1;
	}
	else {
		return 2;
	}
	
}

这段代码之中,我明明没有给leap(int year)的year赋值但是它仍旧可以被正常调用,经过研究,我发现在第一个函数调用leap函数时,其中的参数year第一个函数的参数名字正好相同,因此在主函数之中调用第一个函数时赋予的year值竟然同时赋值给了leap函数,这实现了函数的同时嵌套使用,还是非常有趣的。

其次就是在视频之中看到的c语言利用bool的定义法,我利用了int来弥补,效果也不错,还有在判断2月份天数时视频中运用了三元运算符,我在编码时没有用到,因此多加了一个if语句还多引入了一个uncertian变量。

总的来说,今天的收获还是不少的。

 

以上是关于2021.5.21学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记:python3,代码片段(2017)

2021/5/21 刷题笔记丢失的数字

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

DOM探索之基础详解——学习笔记

学习笔记 链接

ReactJs学习笔记01