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学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

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

前端学习结束总结

2021-5-21 atcoder arc 118 A

2021-5-21 GCD on Blackboard

2021-5-21 atcoder arc 086

2021年ACM竞赛班训练2021.5.21-问题 A: 尝试看到这道题吧-题解