自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 uthash使用指南

int key;/*使结构体作为哈希表的关键*/

2024-06-17 12:19:28 1072 1

原创 编译原理 赋值语句翻译成四元式

赋值语句及算数表达式的翻译将赋值语句翻译成四元式的语义描述:(1) S-> id:=A(2) A->id(3) A->int(4) A->real(5) A->A1+A2(6) A->A1*A2(7) A->-A1(8) A->(A1)

2022-07-15 18:30:44 2141

原创 C语言 分解质因数

问题描述  求出区间[a,b]中所有整数的质因数分解。输入格式  输入两个整数a,b。输出格式  每行输出一个数的分解,形如k=a1a2a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看样例)#include<stdio.h>#include<math.h>int ss(int x){ int i; if((x==1)||(x==2))return 1; for(i=2;i<x;i++) if(x%i==0)return 0; e

2020-09-16 21:10:01 1247

原创 C语言 矩阵乘法

问题描述  给定一个N阶矩阵A,输出A的M次幂(M是非负整数)  例如:  A =  1 2  3 4  A的2次幂  7 10  15 22输入格式  第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数  接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值输出格式  输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开#include<stdio.h>int

2020-09-16 10:56:46 1356

原创 C语言 矩形面积交

问题描述  平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。输入格式  输入仅包含两行,每行描述一个矩形。  在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。输出格式  输出仅包含一个实数,为交的面积,保留到小数后两位。#include<stdio.h>int main(){ double min(double,double); double ma

2020-08-14 21:34:32 1273

原创 C语言 数的读法

问题描述  Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿。  比如说,在对学生讲解第1234567009号位置上的碱基时,光看着数字是很难准确的念出来的。  所以,他迫切地需要一个系统,然后当他输入12 3456 7009时,会给出相应的念法:  十二亿三千四百五十六万七千零九  用汉语拼音表示为  shi er yi san qian si bai wu shi liu wan qi qian

2020-08-14 16:12:05 1691

原创 C语言 Sine之舞

问题描述  最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。  不妨设  An=sin(1–sin(2+sin(3–sin(4+…sin(n))…)  Sn=(…(A1+n)A2+n-1)A3+…+2)An+1  FJ想让奶牛们计算Sn的值,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。输入格式  仅有一个数:N<201。输出格式  请输出相应的表达式S

2020-08-14 12:30:09 338

原创 C语言 芯片测试

问题描述  有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多。  每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏。而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关)。  给出所有芯片的测试结果,问哪些芯片是好芯片。输入格式  输入数据第一行为一个整数n,表示芯片个数。  第二行到第n+1行为n*n的一张表,每行n个数据。表中的每个数据为0或1,在这n行中的第i行第j列(1≤i, j≤n)的数据表示用第i块芯

2020-08-14 11:26:54 963

原创 C语言 龟兔赛跑预测

问题描述  话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病——骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致——它们不到终点决不停止。  然而有些比赛相当漫长,全程观看会耗费大量时间,而

2020-08-08 15:47:14 713 2

原创 C语言 回形取数

问题描述  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式  输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式  输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。#include<stdio.h>int main(){ int n,m,count; scanf("%d%d",&n,&

2020-08-08 14:02:16 1000 1

原创 C语言 2n皇后问题

问题描述  给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。  输入格式  输入的第一行为一个整数n,表示棋盘的大小。  接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应的位置不可以放皇后。  输出格式  输出一个整数,表示总共有多少种放法。#inc

2020-07-26 09:28:25 1048 2

原创 C语言 Huffuman树

问题描述  Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。  给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下:  1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。  2. 重复步骤1,直到{pi}中只剩下一个数。  在上面的操作过程中,把所有的费用相加,就得到了构造Huffman树的总费用。  本题任务:对于给

2020-07-11 09:39:15 251

原创 C语言 高精度加法

问题描述  输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。算法描述  由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。  定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。  计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]与B[

2020-06-28 17:44:27 1375 1

原创 C++ 静态成员的访问

设计一个书类,能够保存书名、定价,以及所有书的本数和总价。#include<iostream>#include<string>using namespace std;class Book {private: string bkName; double price; static int number; static double totalPrice;public: Book() { bkName = ""; price = 0; number++; }; B

2020-05-28 09:01:04 676

原创 C++ 无参构造函数

设计表示平面坐标位置的点类,可以修改和获取点的x、y坐标值,设置构造函数对点的数据成员进行初始化,并且能够用数组保存一系列的点。#include<iostream>using namespace std;class Point {private: int x, y;public: Point(int a, int b) { setPoint(a, b); } int getx() { return x; } int gety() { return y; } Point() {

2020-05-28 08:59:20 9653

原创 C++ 构造函数和类内初始值

某桌子类Desk具有长、宽、高、重四个数据成员,为它设计构造函数,通过构造函数的参数对数据成员进行初始化。#include<iostream>using namespace std;class Desk {public: Desk(int, int); void outData() { cout << "Wight=" << weigth << "\tHeight=" << high << endl; cout &l

2020-05-27 17:53:33 395

原创 C++对象的定义

设计时钟类,要求能够完成时间的设置和显示,并创建时钟类的对象,演示对象的概念和用法。#include<iostream>#include<string>using namespace std;class Clock {public: void setHour(int h) { hour = h; } void setMinute(int m) { minute = m; } void setSecond(int s) { second = s; } void dis

2020-05-27 17:37:29 895

原创 C++ 类(class)

设计复数Complex,提供复数的修改、输入和显示功能。#include<iostream>using namespace std;class Complex {public: void display() { cout << real << "+" << image << "i" << endl; } void inputData() { cout << "input real:"; cin >&

2020-05-27 17:12:13 176

原创 C++ c++对struct的扩展

用struct对圆进行抽象,构造出计算圆周长和面积的抽象数据类型。#include<iostream>#include<string>using namespace std;struct Circle {public: void setR(double radio) { r = radio; } double getR() { return r; } double perimeter() { return 2 * 3.24 * r; } double area()

2020-05-27 15:36:32 219

原创 C++ 文件输入和输出

建立一磁盘文件D:\data.txt,从键盘输入数据(23,34,56,78,98,23,32,89,12)到文件中,然后从磁盘文件中将这些数据读出到数组a中,并计算其总和。#include<iostream>#include<fstream>using namespace std;void main() { ofstream outData("d:\\data.txt"); ifstream inData; int x, a[10]; for(int i=0;i&l

2020-05-27 14:11:35 330

原创 C++ 局部变量与函数返回地址

函数f1()返回局部对象的引用,会产生不可预知的错误运行值。#include<iostream>using namespace std;int& f1(int x) { int temp = x; return temp;}void main() { int& i = f1(3); cout << i << endl; cout << i << endl;}...

2020-05-27 13:56:51 449

原创 C++ 变量类型及生命期

静态变量的生存期长于其作用域的例子。#include<iostream>using namespace std;static int n;//n被初始化为0void f() { static int i;//i被初始化为0 int j = 0; i += 2; j += 2; cout << "i=" << i << ","; cout << "j=" << j << endl;}void main(

2020-05-27 13:38:01 251

原创 C++ 条件编译

#ifdef条件编译的应用例子。#include<iostream>using namespace std;#define DK#ifdef DKvoid f1() { cout << "DK is defined!" << endl; }#elsevoid f1() { cout << "DK is not defined!" << endl; }#endifvoid main() { f1();}...

2020-05-27 13:14:19 287

原创 C++ Lambda表达式

Lambda表达式调用形式的简单例程.#include<iostream>#include<algorithm>using namespace std;void main() { float f = 6.0; cout << [&](float x) {return f += abs(x); }(-3); cout << '\t' << f << '\n'; double a6[] = { 23,10,-4,9,

2020-05-27 12:54:36 116

原创 C++ 内联函数

求两个数最大值的内联函数。#include<iostream>using namespace std;inline int max(int a, int b) { return a > b ? a : b;}void main() { int x1 = max(3, 4); int x2 = max(7, 2); int x4 = max(x1, x2);}

2020-05-27 12:52:53 178

原创 C++ 函数与const和constexpr

返回const引用的函数。#include<iostream>using namespace std;const int& index(int x[], int n) { return x[n];}void main() { int a[] = { 0,1,2,3,4,5,6,7,8,9 }; cout << index(a, 6) << endl; index(a,2)=90;//错误 cout << a[2] <<

2020-05-26 19:45:34 191

原创 C++ 函数重载

设计通过底层const引用区分重载函数f(),通过底层const指针区别的函数g()。#include<iostream>using namespace std;void f(int& x) { cout << "f(int&)" << endl; }void f(const int& x) { cout << "f(const int&)" << endl; }void g(const int* x) {

2020-05-26 19:20:06 142

原创 C++ 函数重载

函数重载解析的例子。#include<iostream>using namespace std;void f(int i) { cout << i << endl; }void f(const char* s) { cout << s << endl; }void main() { char c = 'A'; int i = 1; short s = 2; double ff = 3.4; char a[10] = "12345

2020-05-26 19:09:28 136

原创 C++ 函数重载

重载计算int、float、double三种类型数据绝对值的函数。#include<iostream>using namespace std;int Abs(int x) { return x > 0 ? x : -x; }float Abs(float x) { return x > 0 ? x : -x; }double Abs(double x) { return x > 0 ? x : -x; }void main() { cout << Ab

2020-05-26 17:23:02 451

原创 C++ 函数返回值

返回引用的两数相加函数。#include<iostream>using namespace std;int temp;int& f(int i1, int i2) { temp = i1 + i2; return temp;}void main() { int t = f(1, 3); cout << temp << " "; f(2, 8)++; cout << temp << " "; f(2, 3) = 9;

2020-05-26 17:11:40 183

原创 C++ 函数默认参数

设计函数dog(),输出狗的名字、高和长。默认狗的名字为tom,0.8米高,1.1米长。#include<iostream>#include<string>using namespace std;string name = "tom";double h = 0.8, len = 1.1;void dog(string dogname = name, double high = h, double lenth = len) { cout << "Dogname

2020-05-26 15:07:51 187

原创 C++ 函数默认参数

设计函数sqrt()计算给定数字的平方,默认计算1.0的平方。#include<iostream>using namespace std;double sqrt(double f = 1.0);//sqrt具有默认参数值,默认时f为1.0void main() { cout << sqrt() << endl;//调用sqrt时没有提供实参,按默认值f=1.0调用函数 cout << sqrt(5) << endl;//调用时提供了实参

2020-05-26 14:56:19 165 1

原创 C++ 函数参数传递的类型

按值传递参数与引用传递参数的效率对比。#include<iostream>#include<string>using namespace std;struct student { char name[12] = "";//学生姓名,初始化为空字符串 char Id[8] = "";//学号,初始化为空字符串 int age = 0;//年龄,初始化为0 double score[10] = { 0 };//10科成绩,初始化为0};void print(stude

2020-05-26 14:40:47 240

原创 C++ 函数参数传递的类型

用引用参数完成两数交换的函数swap()。#include<iostream>using namespace std;void swap(int& a, int& b) { int temp = a; a = b; b = temp;}void main() { int x = 5, y = 10; swap(x, y); cout << "x=" << x << "\ty=" << y << en

2020-05-26 14:25:14 159

原创 C++ 函数参数传递的类型

设计对具有6个元素的整数数组进行冒泡法排序的函数。#include<iostream>void sortArr(int a[6]) { for(int i=0;i<6-1;i++) for (int j = 0; j < 6 - i - 1; j++) { if (a[j] > a[j + 1]) { int t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } }}int main() {

2020-05-26 14:16:37 147

原创 C语言 01字串

问题描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:0000000001000100001100100请按从小到大的顺序输出这32种01串。#include<stdio.h>int main(){ int a,b,c,d,e,i; for(i=0;i<100000;i++) {a=i/10000; b=i%10000/1000; c=i%1000/100; d=i%100/10; e=i%10; if((a==1||

2020-05-23 12:15:02 2145

原创 C语言 用指向数组的指针作函数参数

有一个班,3个学生,各学4门课,计算总平均分数以及第n个学生的成绩。#include<stdio.h>int main(){ void average(float*p,int n); void search(float(*p)[4],int n); float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}}; average(*score,12);//求12个分数的平均分 search(score,2);//求序号

2020-05-22 18:05:11 1040

原创 C语言 字母图形

问题描述利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFGBABCDEFCBABCDEDCBABCDEDCBABC这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。#include<stdio.h>#include<math.h>int main(){ int m,n; scanf("%d%d",&n,&m); int i,j; for(i=0;i<n;i++)

2020-05-22 16:57:58 1812 3

原创 C++ 虚函数和多态性

#include<iostream>using namespace std;class Figure {protected: double x, y;public: void set(double i, double j) { x = i; y = j; } virtual void area() = 0;};class Triangle :public Figure {public: void area() { cout << "三角形面积:" <&lt

2020-05-21 16:19:06 161

原创 C++ 虚函数和多态性

#include<iostream>using namespace std;class B {public: void f() { cout << "bf"; }; virtual void vf() { cout << "bvf"; }; void ff() { vf(); f(); }; virtual void vff() { vf(); f(); };};class D :public B {public: void f() { cout &

2020-05-21 16:03:08 162

基于C++的通讯录管理系统

C++入门写的小系统,适合小白初学者 系统中实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人 显示联系人:显示通讯录中所有联系人信息 删除联系人:按照姓名进行删除指定联系人 查找联系人:按照姓名查看指定联系人信息 修改联系人:按照姓名重新修改指定联系人 清空联系人:清空通讯录中所有信息 退出通讯录:退出当前使用的通讯录

2023-01-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除