2021-05-26

1.库函数

C语言中,为了支持可移植性和提高程序效率,在基础库中提供了一系列的类似的库函数,方便程序员进行软件开发。
注意:
1.查找函数和库函数,可以浏览www.cplusplus.com。
2.学习过程中不需要刻意去记忆,需要时再去查找。

2.自定义函数

自定义函数和库函数一样,有函数名,返回值类型和函数参数,不同点是这些函数都是由我们自己定义。
组成:

ret_type fun_name(paral,*)
{
	Statement;//语句项
}
//ret_type:返回值类型
//fun_name:函数名
//paral:函数参数

例如:

int LeapYear(int x)
{
	if ((x % 4 == 0 && x % 100 != 0) || x % 400 == 0){
		return 1;
	}
	return 0;
}

注意:
1.当函数五返回值时,类型为void。
2.函数返回值只能传一个值,若要传多个值,可以使用指针等办法。
3.设计函数时尽量遵循“高内聚低耦合”的原则。

3.函数的参数

实参:真实传递给函数的参数。
形参:函数名后括号中的变量。
例如:

#include<stdio.h>
#include<windows.h>

int LeapYear(int xp)
{
	if ((xp % 4 == 0 && xp % 100 != 0) || xp % 400 == 0){
		return 1;
	}
	return 0;
}```

int main(void)
{
	int x = 0;
	scanf("%d", &x);
	if (LeapYear(x)){
		printf("第%d年是闰年\n", x);
	}
	else{
		printf("第%d年不是闰年\n", x);
	}
	system("pause");
	return 0;
}

其中x为实参,xp为形参。
注意:
1.形参实例化之后相当于实参的一份临时拷贝,因此不可直接通过操作形参来操作实参。
2.形参在函数调用完后被自动销毁。

4.函数的嵌套调用和链式调用

(1)嵌套调用

在一个函数内调用另外一个函数。

#include <stdio.h>
void new_line()
{
	printf("hehe\n");
}
void three_line()
{
	int i = 0;
	for (i = 1; i < 3; ++i){
		new_line();
		return 0;
	}
}
int main(void)
{
	three_line();
	return 0;
}

(2)链式访问

把一个函数的返回值作为另外一个函数的参数。

#include <stdio.h>
int main(void)
{
	printf("%d", printf("%d", printf("%d", 27)));
	return 0;
}

注意:
1.函数的练市调用从内向外。
2.函数形参实例化从右向左。

5.函数的声明和定义

(1)函数声明

函数声明的关键字为extern。

#include <stdio.h>
#include <windows.h>
#pragma once
extern void BubbleSort(int *a, int num);

注意:
1.函数的声明一般出现在函数的使用前,要满足先声明再使用的原则。
2.函数的声明一般要放在头文件的开头,即.h文件的开头。
3.其中#pragma once用来防止头文件被反复包含,等价于以下程序。

#ifndef __TEST_H__
#define __TEST_H__
#include <stdio.h>
#include <windows.h>
extern void BubbleSort(int *a, int num);
#endif

(2)函数的定义

函数的定义是指函数的具体实现,交代函数的功能介绍。

#include "test.h"
void BubbleSort(int *arr,int num)
{
	for (int m = 0; m < num; ++m){
		for (int n = 0; n < num - m - 1; ++n){
			if (arr[n]>arr[n + 1]){
				Spaw((arr + n), (arr + n + 1));
			}
		}
	}
}

6.函数递归

递归是程序调用自身的编程技巧,重要思想是将大事化小。
注意:
1.递归的两个必要条件:
(1)递归需要存在限制条件,当满足此条件时,递归便不再执行。
(2)每次递归调用后会越来越接近此限制条件。
2.递归可能会使效率低下(时间),甚至有可能栈溢出(空间)。
例:求n的阶乘

int factorial(int n) {
 if(n <= 1)
 return 1;
 else
 return n* factorial(n-1);
}
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
2021-03-26 20:54:33,596 - Model - INFO - Epoch 1 (1/200): 2021-03-26 20:57:40,380 - Model - INFO - Train Instance Accuracy: 0.571037 2021-03-26 20:58:16,623 - Model - INFO - Test Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Best Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Save model... 2021-03-26 20:58:16,623 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 20:58:16,698 - Model - INFO - Epoch 2 (2/200): 2021-03-26 21:01:26,685 - Model - INFO - Train Instance Accuracy: 0.727947 2021-03-26 21:02:03,642 - Model - INFO - Test Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Best Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Save model... 2021-03-26 21:02:03,643 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 21:02:03,746 - Model - INFO - Epoch 3 (3/200): 2021-03-26 21:05:15,349 - Model - INFO - Train Instance Accuracy: 0.781606 2021-03-26 21:05:51,538 - Model - INFO - Test Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,538 - Model - INFO - Best Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,539 - Model - INFO - Save model... 2021-03-26 21:05:51,539 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 我有类似于这样的一段txt文件,请你帮我写一段代码来可视化这些训练结果
02-06
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值