
C语言
文章平均质量分 59
Xminyang
LifeVoyage
展开
-
编程错误详解(Programming Error Details)
1 语法错误(Syntax Error) 一般由编译器检测,其违反了编程语言的语句形式或使用规则。常见形式比如:遗漏或错用标点符号、错用关键字、分支或循环语句结构缺少;也称为“编译错误”。2 运行时错误(Runtime Error) 一般编译器无法检测指出,常出现在程序运行时,遇到无法继续执行的操作。常见形式比如:整数除以0的操作、打开不存在的文件、内存不足。3 逻辑错误(Logic Error) 编译器无法检测指出,如程序的运行结果与预期的正确结果不一致。常见形式比如:输出两个整数的原创 2020-06-16 09:39:00 · 2490 阅读 · 0 评论 -
使用define定义命名空间
=== 使用define定义命名空间#include <stdio.h>#define MSG(sym) msg_ ## sym //提供命名空间struct MSG(BoardConfiguration){ int num; const char *name;};struct MSG(HostConfiguration){ int nu...原创 2018-07-18 16:47:38 · 1229 阅读 · 0 评论 -
指针函数与函数指针
区别指针函数是返回类型为指针的函数。(后缀是”函数“) 函数指针是指向函数的指针。(后缀是”指针“) 指针函数#include <stdio.h>char *PtrFunc(char *name)//指针函数{ return name;}int main(){ char name[20] = "Lucy"; char *bu...原创 2018-06-17 00:23:52 · 293 阅读 · 0 评论 -
结构体内嵌函数指针解析
结构体内嵌函数指针的定义typedef struct Factory_s{//结构体内嵌函数指针 int (*init)(void);//函数指针 int (*produce)(int num); int (*consume)(int num);}Factory;结构体内嵌函数指针的初始化Factory factory={//结构体初始化 .init=a...原创 2018-06-16 22:14:01 · 2456 阅读 · 1 评论 -
strlen与sizeof的区别
strlen 头文件:string.h 定义:size_t strlen ( const char * str ); 功能:get string length。 1.The length of a C string is determined by the terminating null-character: A C string is as long as the number...原创 2018-05-19 21:27:17 · 258 阅读 · 0 评论 -
OpenCL原理概况
一、OpenCL简介OpenCL全称Open Computing Language即开放计算语言。OpenCL为异构平台提供了一个编写程序,尤其是并行程序的开放的框架标准。OpenCL所支持的异构平台可由多核CPU、GPU或其他类型的处理器组成。 OpenCL由两部分组成,一是用于编写内核程序(在OpenCL设备上运行的代码) 的语言,二是定义并控制平台的API。OpenCL提供了基于任务和...原创 2018-05-19 10:52:54 · 5598 阅读 · 1 评论 -
double等数据类型的格式
在 C 语言中,当接收一个变量的输入值,需要为变量指定类型。但在接收 double 类型变量输入时,则经常出现一些问题;在实际中,当接收 double 类型变量输入时,应指定 %lf。先将一些字符、对应数据类型及其含义的关系描述如下原创 2017-07-17 23:50:33 · 5024 阅读 · 0 评论 -
宏定义(define)
1. 概念宏定义又称为宏代换、宏替换,简称“宏”。 格式: define 标识符 字符串 其中的标识符就是所谓的符号常量,也称为“宏名”。 预处理(预编译)工作也叫做宏展开:将宏名替换为字符串。2.示例(1)、#define PRINTX printf(“%d\n”, x) 在C程序中,以“#”字符开头的代码都是一条C预处理器语句。预处理器的工作之一是把一个记号字符串替换为另一个。该def原创 2017-04-24 18:18:37 · 2623 阅读 · 0 评论 -
for(初始化;条件判断;操作)
参数简介初始表达式:循环前的初始化变量,通常为赋值表达式:建议用var赋值,可以加快运行速度。(往往是i=1;或k=1;)条件表达式:每次循环前要计算的条件,是运算符类别中的条件运算符,返回值为true或false,当返回值为true时执行循环,为false时退出循环。(往往是i>=n;或用逻辑运算符)操作:每循环一次以后要计算的表达式,通常是递增++或递减—等赋值表达式。for语句中的三个参原创 2016-11-23 20:55:47 · 6380 阅读 · 0 评论 -
快速排序-分治算法
基本思想:将数组A[1...n]划分为两个子数组A[1...p]和A[p+1...n],使得前子数组中的元素均不大于后子数组中的元素,然后分别对这两个数组进行排序,最后再合并为一个有序数组。复杂度分析 // quick_sort.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <algorithm>using namespace std;原创 2016-11-30 00:25:30 · 957 阅读 · 0 评论 -
归并排序-分治算法
基本思想:采用分治算法,将要排序的数组分为两个部分,先分别对这两个部分进行排序,然后再将两部分已经排好序的子数组进行合并,最后形成一个有序的数组。时间复杂度为: // mergeSort.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#define N 6int A[N] = {9,4,1,6,8,7};/* 数组A[low...mid]和A[mi原创 2016-11-29 22:44:03 · 794 阅读 · 0 评论 -
插入排序原理与实现
已知n个元素的数组A[1...n],使用插入法将A中元素按非减排序。// insert_sort.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"/* 向数组a[1...n]中插入元素x*/void Insert(int a[], int n, int x){ int i=n; while (x < a[i]) {原创 2016-11-29 21:36:29 · 450 阅读 · 0 评论 -
回溯算法-定和子集问题
问题描述:在一给定集合中,选择出其子集,使得该子集的元素之和等于给定的数。选择的子集个数不一定唯一。 数学模型: 数的集合S={w1,w2,…,wn}; 定数:M; 求解向量: x=(x1,x2,…,xn),xi为0或1, 使得wi*xi==M. 约束条件: 1、假定前k-1项选择已经确定,并且第k项已选择,使得wi*xi<=M; (i从1至k) 2、确定是否需要继续向前搜索原创 2016-10-28 16:44:16 · 3728 阅读 · 0 评论 -
回溯算法
基本思想 - 可行解:解空间中满足约束条件的决策序列。 - 最优解:在约束条件下使目标值达到最大或者最小的可行解。 - 常用的两种剪枝函数:约束函数(在扩展节点处剪去不满足约束条件的子树)、限界函数(剪去不能达到最优解的子树)。 基本思想是:从状态空间的一条路往前走,能进则进,不能进(界限函数)则退回来,换一条路再试。 状态空间树是由根到所有其他节点的路径描述了某原创 2016-10-28 15:43:00 · 787 阅读 · 0 评论 -
C语言-求指函数
C语言中的求指函数头文件 #include “math.h” 有以下三种内置求指函数 1、float powf( float base, float exponent ); 2、double pow( double base, double exponent ); 3、long double powl( long double base, long double exponent );原创 2016-10-27 10:51:35 · 962 阅读 · 0 评论 -
贪心算法-背包问题2
对上次的C语言代码做了一些修改,可以打印出装进背包里面的物品的顺序编号。// 贪心算法-背包问题-解向量.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <algorithm>using namespace std;#define N 3int flag = 0;//装进物品的总数标记typedef struct{ int w;原创 2016-10-10 21:48:04 · 533 阅读 · 0 评论 -
贪心算法-背包问题
一、背包问题**已知容量为M的背包和n件物品。第i件物品的重量为wi,价值是pi,且将物品i的一部分xi放进背包即可以获得pi*xi的价值。那么,怎么装包才能获得最大价值?**若采用贪心算法,有如下几种方案可选:1、每次选择最轻的物品;2、每次选择最大价值的物品;3、每次选择性价比最大的物品,即pi/wi最大。方案1只考虑多装物品,但由于性价比不一定高,故总价值可能不是最大;方案2忽略了物品的重原创 2016-10-10 11:29:19 · 1700 阅读 · 0 评论