经典算法_预处理

预处理

1 宏定义

2 文件包含

3 条件编译

1 宏定义

软件工程规定,宏定义用英文大写

define不会进行类型检查,只会替换,所以某些场合会出错。

尽量不用define,用const,const初始化的时候,会自动进行类型转换,会有类型检查

 1 #define _CRT_SECURE_NO_WARNINGS
 2
 3 #include <stdio.h>
 4 #include <stdlib.h>
 5
 6 #define M 10.0
 7
 8 main()
 9 {
10     const int N = 10.9;
11
12     printf("%d\n", M);//define不会进行类型检查,只会替换,所以某些场合会出错。
13
14     printf("%d\n", N);//尽量不用define,用const,const初始化的时候,会自动进行类型转换,会有类型检查
15
16     system("pause");
17 }

3 条件编译

 1 #define _CRT_SECURE_NO_WARNINGS
 2
 3 #include <stdio.h>
 4 #include <stdlib.h>
 5
 6 #define cn "你好世界"
 7 #define en "hello world"
 8
 9 #define B 1//定义一个宏,有选择的编译语句,例如一套编码同时应对中英文两个版本
10
11 main()
12 {
13
14 #if B == 1
15 {
16     printf(cn);
17 }
18 #else
19 {
20     printf(en);
21 }
22 #endif
23
24     system("pause");
25 }
时间: 2024-12-13 12:24:24

经典算法_预处理的相关文章

经典算法_链表

1 创建一个链表,包含在尾部插入数据和输出的函数. 头文件linknode.h 源文件 源文件main.c 源文件linknode.c 2 创建一个链表,静态模式 3 创建一个链表,动态模式 1 创建一个链表,包含在尾部插入数据和输出的函数. 头文件linknode.h 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 struct student 5 { 6 int num; 7 float score; 8 struct studen

经典算法_指针

一个指向整型数的指针 int*p 一个指向整型数指针的指针 int **p 一个有10个整型指针的数组 int *p[10] 一个指向有10个整型数数组的指针 int (*p)[10] 一个指向函数的指针,该函数有一个整型参数,并返回一个整型数 int ( *p)(int) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数,并返回一个整型数. int(*p[10])(int) 一个指向函数指针的指针,所指向的函数有一个整型参数,并返回一个整型数. int (**p)(int) i

经典算法_位运算

1 按位异或 适用于:面试,嵌入式开发需要节约内存的场合 不借助中间变量,交换2个变量 x=x+y y=x-y x=x-y 1 #define _CRT_SECURE_NO_WARNINGS 2 3 #include<stdio.h> 4 #include<stdlib.h> 5 6 main() 7 { 8 unsigned char ch1 = 10; 9 unsigned char ch2 = 20; 10 11 printf("%d,%d\n", ch1

经典算法_字符串

1 写出函数,相当于strncat 1 #define _CRT_SECURE_NO_WARNINGS 2 3 #include<stdio.h> 4 #include<stdlib.h> 5 #include<string.h> 6 7 void mystrncat(char *bc, char *c, int length) 8 { 9 if (bc == NULL || c == NULL) 10 { 11 return NULL; 12 } 13 else 14

经典算法_结构体

1 动态结构体 1 #define _CRT_SECURE_NO_WARNINGS 2 3 #include<stdio.h> 4 #include<stdlib.h> 5 6 struct dangdang 7 { 8 char email[30]; 9 char name[30]; 10 char addr[100]; 11 int num; 12 int bignum; 13 char tel[20]; 14 char phone[20]; 15 double rmb; 16

数据挖掘十大经典算法

一. C4.5  C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法.   C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进: 1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足: 2) 在树构造过程中进行剪枝: 3) 能够完成对连续属性的离散化处理: 4) 能够对不完整数据进行处理. C4.5算法有如下优点:产生的分类规则易于理解,准确率较高.其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导

【转】聚类分析经典算法讲解及实现

本文将系统的讲解数据挖掘领域的经典聚类算法,并给予代码实现示例.虽然当下已有很多平台都集成了数据挖掘领域的经典算法模块,但笔者认为要深入理解算法的核心,剖析算法的执行过程,那么通过代码的实现及运行结果来进行算法的验证,这样的过程是很有必要的.因此本文,将有助于读者对经典聚类算法的深入学习与理解. 4 评论 杨 翔宇, 资深软件工程师, IBM 段 伟玮, 在读博士, IBM 2016 年 7 月 18 日 内容 在 IBM Bluemix 云平台上开发并部署您的下一个应用. 开始您的试用 前言

机器学习经典算法详解及Python实现---朴素贝叶斯分类及其在文本分类、垃圾邮件检测中的应用

摘要: 朴素贝叶斯分类是贝叶斯分类器的一种,贝叶斯分类算法是统计学的一种分类方法,利用概率统计知识进行分类,其分类原理就是利用贝叶斯公式根据某对象的先验概率计算出其后验概率(即该对象属于某一类的概率),然后选择具有最大后验概率的类作为该对象所属的类.总的来说:当样本特征个数较多或者特征之间相关性较大时,朴素贝叶斯分类效率比不上决策树模型:当各特征相关性较小时,朴素贝叶斯分类性能最为良好.另外朴素贝叶斯的计算过程类条件概率等计算彼此是独立的,因此特别适于分布式计算.本文详述了朴素贝叶斯分类的统计学

机器学习经典算法具体解释及Python实现--K近邻(KNN)算法

(一)KNN依旧是一种监督学习算法 KNN(K Nearest Neighbors,K近邻 )算法是机器学习全部算法中理论最简单.最好理解的.KNN是一种基于实例的学习,通过计算新数据与训练数据特征值之间的距离,然后选取K(K>=1)个距离近期的邻居进行分类推断(投票法)或者回归.假设K=1.那么新数据被简单分配给其近邻的类.KNN算法算是监督学习还是无监督学习呢?首先来看一下监督学习和无监督学习的定义.对于监督学习.数据都有明白的label(分类针对离散分布,回归针对连续分布),依据机器学习产