
c-c++
icesongqiang
夫事不可以两立也,圣人知其然,是故有所取,必有所舍;有所禁,必有所宽。宽之则其禁必止,舍之则其取必得。
展开
-
最小生成
5 50 0 0 0 00 0 1 0 00 1 2 1 00 0 1 0 00 0 0 0 0#include <stdio.h>#include <stdlib.h>#include <string.h>#include <limits.h>#include <string>#include <stac...原创 2019-10-26 19:08:49 · 284 阅读 · 0 评论 -
TA2017_5
总结:字符串结束一定要加’\0’ 函数的提取,主要是面向过程 递归函数注意执行顺序表达式结束一定加‘;’5_9 输入一行字符,统计其中的单词个数,/*** 输入一行字符,统计其中的单词个数,** 单词之间可能会有多个空格*/#include <stdio.h>#include <string.h>#include <ctype.h>int countWords(char *str原创 2017-11-17 19:49:32 · 457 阅读 · 0 评论 -
测验
#include #include using namespace std;int currentAmount(vectorint> & rabbits){ int amount = 0; for (int i = 1; i < rabbits.size(); ++i){ amount += rabbits[i]; } return am原创 2017-08-14 21:58:56 · 520 阅读 · 0 评论 -
位域和大小端
位域和大小端intel 小端,使用位域从低字节开始赋值,赋值内还是从高位到低位#include &amp;amp;lt;stdio.h&amp;amp;gt;union{ int data1; char data2;}Endian;int BigLittle(){ Endian.data1 = 0x12345678; printf(&amp;quot;%x \n&amp;quot;, En原创 2018-07-23 18:02:16 · 2758 阅读 · 0 评论 -
函数指针数组
定义函数指针类型typedef UINT32 (*PFUNC)(UINT32)2.定义同类型多个函数UINT32 procOfAxiRsp(UINT32 uwData){ return 0;}UINT32 procOfDevcuRerls(UINT32 uwData){ return 0}定义函数指针数组PFUNC afunc[] = {procOfAxiRsp...原创 2018-11-06 23:26:06 · 146 阅读 · 0 评论 -
结构体初始化
#include <stdio.h>#include <iostream>using namespace std;typedef struct MMM{int count;int data[3];}MMM;int main(){ //cout << "Hello World"; MMM mm = {3, 1, 2, 3}; co...原创 2018-12-19 11:14:00 · 209 阅读 · 0 评论 -
%n 使用
%n 使用#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>/*test for %n */void test(){ char acData[] = "125"; int wData; unsigned int wLen; sscanf(acData, "%d%n...原创 2019-04-15 23:41:03 · 444 阅读 · 0 评论 -
单例模式
单例模式中静态成员只是声明,还需要在cpp中定义,否则会出现 Undefined Reference “XXXX”原创 2019-04-30 11:32:22 · 104 阅读 · 0 评论 -
设计模式--工厂模式
工厂模式头文件Calculator.h#ifndef _CALCULATOR_H_#define _CALCULATOR_H_#include <iostream>#include <string>using namespace std;/* 计算的工厂类 */// 简单工厂模式class Calculator;class CalcSimply...原创 2019-07-23 21:39:36 · 137 阅读 · 0 评论 -
Qsort对链表指针排序
数组元素为head头指针头指针是结构体指针排序方式:链表元素少的排前面元素个数相同的按字典序排序#include <stdio.h>#include <stdlib.h>typedef struct TagNode{ int data; struct TagNode *next;}Node;Node *CreateLink(int *arr...原创 2019-08-18 23:05:29 · 2069 阅读 · 0 评论 -
N的阶乘
#大整数的阶乘整数拆分\begin{equation}\begin{aligned}(aM+b) c &= M a c + b * c&= (M* a*c + carry) + res\end{aligned}\end{equation}where carry=b∗c/M,res=b∗c%Mcarry = b *c /M, res = b*c\%Mcarry=...原创 2019-08-15 15:35:27 · 414 阅读 · 0 评论 -
hh
long int strtol(const char *str, char **endptr, int base) char *astr[] = { "+", "0", "123", "-12" }; char *ptr; int res; for (int i = 0; i < 4; i++) { res = strtol(astr[i]...原创 2019-08-28 14:42:11 · 138 阅读 · 0 评论 -
熊猫钓鱼
题目描述苗苗今天很无聊,就喊来希希和他一起玩熊猫钓鱼的扑克游戏。苗苗找来一堆扑克,将其平均分成两份,每人拿一份,苗苗先拿出手中的第一张牌放在桌子上,然后希希也拿出手中第一张牌放在苗苗刚打出来的牌上面,就像这样两人交替出牌。出牌时,如果谁打出的牌与桌上某张牌牌面相同,就可以把两张相同牌以及夹在其中的所有牌全部取走,并且把自己赢得的牌按照桌面上从上到下(1号牌压在2号牌上,那么1号牌就是在上,2号牌...原创 2019-09-04 16:07:15 · 5365 阅读 · 0 评论 -
勒让德多项式
/*** n 阶勒让德多项式求值* 迭代法和递归法* @time:17.11.09* @author:icesongqiang*/#include <stdio.h>#include <stdlib.h> // for srand()#include <malloc.h> // for malloc() && free()#include <time.h>原创 2017-11-09 10:27:21 · 11891 阅读 · 1 评论 -
牛顿法解方程
牛顿法的关键在于知道哪一个才是真正的函数我们需要的是 构建 $f(x)=0$的函数C code:#include <stdio.h>#include <math.h>const double EPS = 1E-9;double mysqrt(double s){ double x0 = 0.01; // the denominator should be non-zero原创 2017-08-20 15:52:51 · 1085 阅读 · 0 评论 -
Valid Parentheses
Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid. The brackets must close in the correct order, “()” and “()[]{}” are all valid but原创 2017-08-13 14:43:07 · 180 阅读 · 0 评论 -
C语言入门级教程二
C语言入门级教程 icesongqiang 2016.10.24 熟悉运算符的左右结合性这里只提出比较重要的几个。 1). “? : “的右结合性 2). “*=, +=, =+”和”/=”的右结合性 例如:int ia=12; ia += ia -= ia *= ia;很多同学都可以得到结果为0,但是其中ia的具体变化情况其实知道的不多,我们以这条语原创 2016-10-24 09:59:57 · 518 阅读 · 0 评论 -
C语言入门级教程四
C语言入门级教程 icesongqiang 2016.11.7 矩阵乘法矩阵乘法主要就是三个for循环。注意:很多同学都喜欢先定义变量M,N来表示数组的size,定义数组大小为arr[M][N], 这种方式其实是不可取的。严格的C编译器是会把报错的,这里先这样用。等到后面学到了动态分配,就可以实现用变量来表示数组的大小,然后可以把下面这个代码进行修改。////原创 2016-11-07 22:44:20 · 427 阅读 · 0 评论 -
C语言入门级教程三
C语言入门级教程 icesongqiang 2016.10.31 总结现在很多同学已经知道数据类型为double, float时判断数据大小使用绝对值,但是要提的是我们要尽量使用 fabs(a) , 而 abs() 的返回值为int型,希望大家注意;关于税收的问题,注意是分段累计求和;税收很多同学都是使用switch() case{} 语句,这里给出一个原创 2016-10-31 22:20:18 · 377 阅读 · 0 评论 -
C语言入门级教程六
C语言入门级教程 icesongqiang 2016.11.21 总结这次上机,有的同学依然会犯一些基础的错误,比如 1.字符串的初始化与结束 2.数据类型不匹配(输入输出 %d %f) 3.循环语句 if语句不加大括号下次上机就要调试指针了,请大家尽量使用可以调试的IDE,机房推荐使用VC。 还不会的请尽快向会的同学请教。自定义atof()函数#incl原创 2016-11-21 22:08:55 · 516 阅读 · 0 评论 -
C语言入门级教程 七
C语言入门级教程 icesongqiang 2016.11.28 总结关于宏定义,宏定义会在编译时在宏的所在位置按定义展开,也就是替换过程。如 #define swap(a,b) {double temp=a;a=b;b=temp;} 那么就会在swap(a,b) 出现的地方由{double temp=a;a=b;b=temp;} 替换掉,注意此处的花括弧,原创 2016-11-28 22:23:42 · 419 阅读 · 0 评论 -
C语言入门级教程
C语言入门级教程 icesongqiang 2016.10.19 数据类型常用数据类型 整型(int, short, long, c++11 long long)字符型(char)实型(float, double)枚举类型(enum )构造数据类型 结构体类型数组类型指针类型空类型(void)实验一各种类型和其格式化输出语句 类型 格式化输出 int %d原创 2016-10-19 20:59:38 · 492 阅读 · 0 评论 -
C语言入门级教程九
C语言入门级教程 icesongqiang 2016.12.12 总结scanf("%s,%s",a,b) 中间只有‘,’是达不到效果的,scanf 是连同‘,’一起读入a的;结构体变量要注意到底需要的是哪一个元素;简单的图书结构体/** 1.为图书建立相应的结构体* 2.利用结构体数组实现多本图书的存取*/#define _CRT_SECURE_N原创 2016-12-12 22:52:56 · 251 阅读 · 0 评论 -
C语言入门级教程 八
C语言入门级教程 icesongqiang 2016.11.28 总结一维指针,二维指针以及行指针是不同的类型;矩阵转置/**矩阵转置* 内部设置一个大的方阵,用来装用户的矩阵,* 只在输入输出时按照用户的长,宽输出* 两重循环,每次内循环执行交换功能* @author icesongqiang 1204*/ #include <stdio.h>原创 2016-12-05 23:06:29 · 254 阅读 · 0 评论 -
链表的第一个公共节点
应该假设每个节点 是用指针直针来连接, 不然必须要用递归或者遍历完才能说明是公共的。 公共的意思是在内存上占用的空间相同/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Soluti原创 2017-02-21 11:35:13 · 440 阅读 · 0 评论 -
STL: set 和 priority_queue
优先级队列默认是底层为vector实现的heapset 基于平衡红黑树两者插入元素时间复杂度都是O(log(n))使用默认的greater 得到的结果不同#include <iostream>#include <queue>#include <vector>#include <set>int main(){ using namespace std; vector<in原创 2017-02-15 23:10:40 · 867 阅读 · 1 评论 -
C语言入门级教程五
C语言入门级教程 icesongqiang 2016.11.14 本次试验暴露出来的一些问题: 1. if() 条件判断等于,里面一定是if(a==b) , 而if(a=b) 执行赋值操作,赋值的数就是表达式的值; 2. 字符串拼接,将char b[80] 拼接到 char a[80] 后,一定要添加 '\0' ; 3. 单词统计很多同学的统计结果会与真原创 2016-11-14 23:09:58 · 750 阅读 · 0 评论 -
overload, override, and redefine
Override and overload in C++Overloading generally means that you have two or more functions in the same scope having the same name. The function that better matches the arguments when a call is made wi转载 2017-07-14 10:22:49 · 261 阅读 · 0 评论 -
C语言base64编解码
– * icesongqiang* base64码简介百度词条Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)原创 2016-10-12 20:28:41 · 18463 阅读 · 1 评论