
C/C++
文章平均质量分 65
handsome_ZHANG
因为梦想,所以相信
展开
-
[C++ Primer Plus]学习笔记--Writing a file
//outfile.cpp--writing a file#include<iostream>#include<fstream>int main(){ using namespace std; char automobile[50]; int year; double a_price; double d_price; ofstream outFile原创 2017-07-02 22:33:55 · 244 阅读 · 0 评论 -
稀疏矩阵的压缩存储
实验目的:深入研究数组的存储表示和实现技术,着重掌握对稀疏矩阵的表示方法及其运算的实现。问题描述:稀疏矩阵是指那些多数元素为零的矩阵。利用‘稀疏’特点进行存储和计算可以大大节省存储 空间,提高效率。通过对稀疏矩阵的存储表示,实现矩阵的基本操作。实验要求: 1.要求矩阵的输入形式采用三元组表示,以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵。 2.设计矩阵的逆置算法,实现矩阵的逆置。 3原创 2017-06-03 23:48:53 · 1548 阅读 · 1 评论 -
栈的应用--括号匹配的检验
#include <stdio.h>#include <string.h>int top=-1;//top变量时刻表示栈顶元素所在位置void push(char * a,int elem){ a[++top]=elem;}void pop(char* a){ if (top==-1) { return ; } top--;}char v原创 2017-10-01 15:48:15 · 374 阅读 · 0 评论 -
全排列生成算法
/*输出1~n的全排列*/#include<cstdio>const int maxn=11;//P为当前排列,hashTable记录整数x是否已经在P中int n,P[maxn] ,hashTable[maxn] = {false};//当前处理排列的第index号位void generateP(int index){ if(index==n+1)//递归边界,已经处理完排列的1原创 2017-10-01 20:05:20 · 268 阅读 · 0 评论 -
八皇后问题
1.八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。2.暴力法求解:#include<cstdio>#include<cmath>using namespace std; const int maxn=11;int count=0; //P为当前原创 2017-10-01 21:08:59 · 345 阅读 · 0 评论 -
c++中抽象类与接口的区别
抽象类:抽象类是特殊的类,只是不能被实例化(将定义了一个或多个纯虚函数的类称为抽象类);除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的,但同时也能包括普通的方法。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。虽然不能定义抽象类的实例,但是可以定转载 2017-10-24 09:14:49 · 1238 阅读 · 0 评论 -
排序算法
1.插入排序(insertion sort)void insertsort(int A[N]){ for(int i=2;i<=N;i++)//进行N-1趟排序 { int temp=A[i],j=i;//temp临时存放A[i],j从i开始往前枚举 while( j>1 && temp<A[j-1] ) //只要temp小于前一个元素A[j-原创 2017-08-29 21:11:26 · 168 阅读 · 0 评论 -
程序员福利
偶然发现几个有意思的程序:用C语言显示出花的图形,效果如下: 程序是利用EasyX图形库实现的,只要配置ExasyX库就可以运行 源码如下:/*花*/#include <graphics.h>#include <conio.h>#include <math.h>#define PI 3.14159265// 画 花朵void flower(int x, int y, COLORREF原创 2017-08-19 12:19:35 · 504 阅读 · 0 评论 -
实现逆向输出
1.设L为带头结点的单链表,编写算法实现从头到尾输出每个结点的值.方法1: 链表逆置后再输出.方法2:递归实现逆向输出void R_Print(LinkList L){ if(L->next!=NULL) R_Print(L->next); print(L->data);}...原创 2018-04-05 20:27:29 · 1094 阅读 · 0 评论 -
PAT-B 1028 人口普查 (20 分)
1.0输入的所有数据均合法但不合理的情况, 输出0;2.结构体没有指针可以直接复制3.用string和cin,cout来输入输出最后一个测试点会超时4.用一个for循环边输入边判断条件是否符合...原创 2019-01-25 23:11:53 · 146 阅读 · 0 评论 -
PAT-B 1014 福尔摩斯的约会 (20 分)
大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第 2 对相同的字符是 E ,那是第 5 个英文字母,代...原创 2019-02-01 12:33:12 · 188 阅读 · 0 评论 -
PAT-B 1021 个位数统计 (15 分)
给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1&gt;0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。输入格式:每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。输出格式:对 N 中...原创 2019-01-28 10:58:07 · 249 阅读 · 0 评论 -
PAT-B 1015 德才论 (25 分)
宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。输入格式:输入第一行给出 3 个正整数,分别为:N(≤105),即考生总数;L(≥60),为录取最低分数线,即德分和才分均不低于 L 的考生...原创 2019-02-11 12:30:49 · 261 阅读 · 0 评论 -
携程后台开发笔试第二题
第二题题目是按k组反转链表,但是他没给链表结构,所以不用像leetcode那题一样,直接用数组存储处理就可以了输入:[1,2,3,4,5]2输出:[2,1,4,3,5] //不够K的倍数的数字5维持原状用Java比C++好做定义一个字符串转换为按 , 数组分割的数组的函数/*Javapublic static String [] strTostrArray(String st...原创 2019-04-08 23:09:04 · 444 阅读 · 0 评论 -
[笔试题]统计一个文本文件中每个单词出现的次数,并把结果写入文件中
```#include<iostream>#include<fstream>#include<string>#include<map>using namespace std;int main(int argc, char *argv[]){ ifstream in("in.txt"); ofstream out("out.txt...原创 2019-04-12 10:45:33 · 7231 阅读 · 0 评论 -
const的用法,特别是用在函数前面与后面的区别
**在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针。可以改变this所指向的值,但不能改变 this所保存的地址。 在 const成员函数中,this的类型是一个指向 const类类型对象的 const指针。既不能改变 this所指向的对象,也不能改变 this所保存的地址。**关键字:Const,Const函数,Const变量,函数后面的Const看到c转载 2017-07-15 15:55:08 · 530 阅读 · 0 评论 -
【转】并查集算法和路径压缩
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?) 来看一个实例,杭电1232畅通工程:畅通工程Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全转载 2017-09-08 17:24:50 · 612 阅读 · 0 评论 -
[C++ Primer Plus]学习笔记--C++内联函数
> #body { display: block; *display:inline-block: ; width: 990px; margin: 0 auto; padding: 9px; text-align: left;}#body::after { content: “.”; display: block; heigh转载 2017-07-06 08:59:07 · 378 阅读 · 0 评论 -
类内定义与内联函数的关系
类内定义与内联函数的关系 类内定义的成员函数,编译器会将其优先编译为内联函数,但是对于复杂的成员函数无法编译成内联函数的,就编译成普通的函数。原创 2017-07-21 22:00:11 · 671 阅读 · 0 评论 -
int long long long取值范围
unsigned int 0~4294967295 int -2147483648~2147483647 unsigned long 0~4294967295 long -2147483648~2147483647 long long的最大值:9223372036854775807 long long的最小值:-9223372036854775808 unsign转载 2017-08-09 17:56:07 · 353 阅读 · 0 评论 -
链表头结点存在的意义
数据结构中,在单链表的开始结点之前附设一个类型相同的结点,称之为头结点。头结点的数据域可以不存储任何信息,头结点的指针域存储指向开始结点的指针(即第一个元素结点的存储位置)。 作用 1、防止单链表是空的而设的.当链表为空的时候,带头结点的头指针就指向头结点.如果当链表为空的时候,单链表没有带头结点,那么它的头指针就为NULL. 2、是为了方便单链表的特殊操作,插入在表头或者删除第一个结点.这样转载 2017-08-18 18:20:40 · 3483 阅读 · 1 评论 -
[C++ Primer Plus]学习笔记--浮点数的优缺点
3.3.4 浮点数的优缺点 与整数相比,浮点数有两大优点.首先,它可以表示整数之间的数值.其次,由于有缩放因子,它可以表示的范围大得多.另一方面,浮点数的运算通常比整数慢,且精度将降低.下面程序证明了最后一点.#include<iostream>int main(){ using namespace std; float a=2.34e+22f; float b=a+1原创 2017-06-22 17:42:20 · 1556 阅读 · 0 评论 -
[C++ Primer Plus]学习笔记--每次读取一行字符串输入
面向行的输入 1.getline( ) getline( )读取整行,它使用通过回车键输入的换行符来确定输入结尾. 使用方法:char name[20];cin.getline(name,20);2.get( )char name[20];cin.get(name,20);get( )也是读取整行,直到换行符,但是getline( )将丢弃换行符,而get( )将换行符保留在输入序列原创 2017-06-23 16:57:00 · 400 阅读 · 0 评论 -
[C++ Primer Plus]学习笔记--关于C++ string和c类型字符数组的对比
在c++中string是很方便操作的字符串,支持多种算数运算和比较运算,操作起来非常灵活。string也具有一些容器的性质,可以通过迭代器对字符元素进行访问. C类型的字符数组有如下三种初始化方式:char *c="journey";char c_arr[]="journey";char c_arr1[]={'j','o','u','r','n','e','y'};//前两种是等同的,最后一转载 2017-06-24 16:40:13 · 368 阅读 · 0 评论 -
[C++ Primer Plus]学习笔记
编写一个使用嵌套循环的程序,要求用户输入一个值,指出要显示多少行.然后,程序将显示相应行数的 * 输入实例: Enter number of rows : 5 . . . . * . . . * * . . * * * . * * * * #include <iostream>int main(){ using namespace std;原创 2017-07-01 22:42:00 · 274 阅读 · 0 评论 -
[C++ Primer Plus]学习笔记 --字符函数库cctype
c++中应该是#include <cctype>c中应该是#include <ctype.h>以下为字符函数库中常用的函数:函数名称返回值isalnum()如果参数是字母数字,即字母或数字,该函数返回trueisalpha()如果参数是字母,该函数返回真isblank()如果参数是空格或水平制表符,该函数返回trueiscntrl()如果参数是控制字符,该函数返回trueis原创 2017-07-01 23:28:30 · 361 阅读 · 0 评论 -
构造函数与析构函数的应用
定义一个Student类,包含名字一个数据成员,定义无参构造函数、有参构造函数、拷贝构造函数、析构函数及对于名字的封装函数,在main函数中实例化Student对象,并访问相关函数.#include <iostream>#include <string>using namespace std;/** * 定义类:Student * 数据成员:m_strName * 无参构造函数:Stud原创 2017-07-24 18:46:44 · 577 阅读 · 0 评论 -
用递归方式实现逆序输出
#include<iostream>using namespace std;void Reprint(int n){ cout<<n%10; if(n/10!=0) Reprint(n/10); }int main(){ int a=0; while(cin>>a) { Reprint(a); } retur原创 2017-08-03 22:32:03 · 8223 阅读 · 0 评论 -
高效率的求幂运算
计算X^N的常见算法是使用N-1次乘法自乘,但是递归算法更好,如果N是偶数, 我们有X^N=X^(N/2)X^(N/2),如果N是奇数则X^N=[X^(N-1)/2][X^(N-1)/2].#include<stdio.h>int IsEven(unsigned N);long int Pow(long int X,unsigned int N);int main(){ long原创 2017-08-10 21:27:05 · 349 阅读 · 0 评论 -
查找树ADT--二叉查找树
/*Tree.h*/#ifndef _Tree_Hstruct TreeNode;typedef struct TreeNode *Position;typedef struct TreeNode *SearchTree;typedef int ElementType;SearchTree MakeEmpty(SearchTree T);Position Find(ElementType原创 2017-08-21 17:08:32 · 279 阅读 · 0 评论 -
一个C语言输入输出细节引发的灾难
1.问题引出:问题 E: 例题3-5 求一元二次方程的根 题目描述 求一元二次方程ax2+bx+c=0的根,三个系数a, b, c由键盘输入,且a不能为0,且保证b2-4ac>0。 程序中所涉及的变量均为double类型。 输入 以空格分隔的一元二次方程的三个系数,双精度double类型 输出 分行输出两个根如下(注意末尾的换行): r1=第一个根 r2=第二个根 结果输出时,宽原创 2017-09-10 18:46:10 · 784 阅读 · 0 评论 -
[纽劢科技笔试题]-简单模拟
题意:输入n表示有1-n这些数,当剩余两个数及以上时,输出第一个并丢弃,并把第二个添加到末尾,循环往复```输入:2 //表示两组数据2 //表示第一组数据有1 27 //表示第二组数据有 1 2 3 4 5 6 7输出:1 21 3 5 7 4 2 6```---------------------------...原创 2019-04-12 16:23:35 · 1472 阅读 · 0 评论