c++
哔哗
公众号:哔哗
个人博客:www.lbihua.cn
展开
-
C++标准输入流输出流的控制符
*# 控制符(操作符)dec 数值的基数为10。hex 数值的基数为16。Oct 数值的基数为8。setfill(x) 设置填充字符,其中x为要填充的字符常量或者字符变量,要填充的字符个数可由控制符setw设置。setprecision(x) 对于一般十进制数来说,x为有效数字,如果和fixed结合,那么x为保留的小数位数,如果和scientific结合,那么x也为保留的小数位数。 ...原创 2019-04-05 14:38:47 · 552 阅读 · 0 评论 -
求一个3 x 3矩阵对角线元素的乘积之和
#include<iostream>using namespace std;int main(){ int a[][3] = { 1,2,3,4,5,6,7,8,9 }; int i,j,sum1=1,sum2=1; for (i = 0; i < 3; i++) sum1 *= a[i][i]; for (i = 0,j=2; i < 3; i++,j...原创 2019-07-24 09:57:10 · 1923 阅读 · 0 评论 -
杨辉三角
打印输出10行的杨辉三角形:#include<iostream>using namespace std;int main(){ int a[11][11]; int i, j; for (i = 1; i < 11; i++) { for (j = 1; j <= i; j++) { if (j == 1 || j == i) { ...原创 2019-07-29 15:16:27 · 63 阅读 · 0 评论 -
哥德巴赫猜想
哥德巴赫猜想:一个不少于6的偶数,可表示为两个素数(质数)之和,主函数输入一个偶数,然后在主函数中调用gotbaha函数,在gotbaha函数中调用prime函数。#include<iostream>using namespace std;void gotbaha(int a){ int prime(int b); int m=3, n=a-m; for (m; m &l...原创 2019-07-22 08:53:53 · 172 阅读 · 0 评论 -
编写一程序,将两个字符串连接起来,结果取代第一个字符串。
用字符数组:#include<iostream>using namespace std;int main(){ void strcaten(char *str1, char *str2); char str1[50] = "I love"; char str2[10]=" china!"; strcaten(str1, str2); cout << str...原创 2019-08-03 15:10:59 · 7955 阅读 · 0 评论 -
输入n个字符串,将他们按字母由从小到大的顺序排序并输出
方法一:冒泡排序法#include<iostream>#include<string>using namespace std;int main(){ const int n = 4; string str[n],t; int i,j; for (i = 0; i < n; i++) cin >> str[i];//从键盘输入n个字符串...原创 2019-08-03 16:34:01 · 18643 阅读 · 1 评论 -
输入n个字符串,把其中以字母A打头的字符串输出
#include<iostream>#include<string>using namespace std;int main(){ const int n = 4; string str[n]; int i; for (i = 0; i < n; i++) cin >> str[i]; for (i = 0; i < n; i...原创 2019-08-03 16:53:26 · 3519 阅读 · 0 评论 -
输入十个学生的姓名,学号,成绩,将其中不及格者的学号.姓名和成绩输出
#include<iostream>#include<string>using namespace std;int main(){ int num[10]; float score[10]; string name[10]; int i = 0; for (i = 0; i < 10; i++) { cout << "please ...原创 2019-08-04 09:35:44 · 5119 阅读 · 0 评论 -
折半查找法(二分法)
#include<iostream>using namespace std;int main(){ int bin_search(int *a, int y); int a[6], i,x; for (i = 0; i < 6; i++) cin >> a[i]; cout << "please the key number:"; ci...原创 2019-07-31 14:39:14 · 107 阅读 · 0 评论 -
给出年月日,计算该日是该年的第几天。
闰年有366天,二月有29天。平年有365天,二月有28天。判断依据:闰年能被2整除,但不能被100整除的为闰年。或者能被400整除的为闰年。代码示例如下:**#include<iostream>using namespace std;int main(){ int rn[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };/...原创 2019-07-31 15:47:30 · 320 阅读 · 0 评论 -
带参数的宏
定义两个带参数的宏,一个用来求s,另一个用来求area.#include<iostream>using namespace std;#define s(a,b,c) (a+b+c)/2#define Area(a,b,c) sqrt(s(a,b,c)*(s(a,b,c)-a)*(s(a,b,c)-b)*(s(a,b,c)-c))int main(){ int a, b, ...原创 2019-07-22 19:32:13 · 1587 阅读 · 0 评论 -
有一篇文章,共有三行文字,每行80个字符。要求分别统计出其中英文大写字母,小写字母,数字,空格,以及其他字符的个数。
**代码示例如下:**#include<iostream>using namespace std;int main(){ char str[3][80]; int i, j, upper, lower, digit, space, other; for (i = 0; i < 3; i++) { upper = lower = digit = space = ...原创 2019-07-31 17:26:19 · 5013 阅读 · 0 评论 -
字符串处理函数
strcat (string catenate)字符串连接函数:#include<iostream>#include<string>using namespace std;int main(){ char str1[20] = "Hello"; /*char str2[10] = " World!";*/const char *str2 = " World!"...原创 2019-07-23 15:27:18 · 87 阅读 · 0 评论 -
打印输出以下图案
字符数组形式:#include<iostream>using namespace std;int main(){ char str[15]; gets_s(str);//输入字符串 int i, j; cout << "输出图案:"<<endl; for (i = 1; i < 6; i++) { for (j = 1; j &l...原创 2019-08-01 18:10:54 · 3377 阅读 · 0 评论 -
密码破译
有一行电文,已按下面规律译成密码:A->Z a->zB->Y b->yC->X c->x即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不转换。代码如下:#include<iostream>using namespace std;int main(){ char str[] = "R olev bl...原创 2019-08-01 22:39:11 · 624 阅读 · 0 评论 -
写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
方法一:字符串变量法#include<iostream>#include<string>using namespace std;int main(){ int str_len(string *p); string str;//定义字符串变量str cin >> str;//用cin语句输入字符串 cout<<str_len(&...原创 2019-08-22 08:58:25 · 7806 阅读 · 1 评论 -
用选择法对十个整数排序
#include<iostream>using namespace std;int main(){ int a[10], i ,j; for (i=0; i < 10; i++) cin >> a[i]; for (i = 0; i < 10; i++) { for (j = i + 1; j < 10; j++) if (a[...原创 2019-07-24 09:11:15 · 485 阅读 · 0 评论 -
用筛选法求100内的素数
#include<iostream>using namespace std;int main(){ int a[101],i=2; for (i; i < 101; i++) a[i] = i;//按从小到大的次序为数组赋值 for (int i = 2; i < (int)sqrt(101); i++) for (int j = i + 1; j &l...原创 2019-07-23 16:46:53 · 162 阅读 · 0 评论 -
多重继承
一.多重继承派生类的构造函数1.多种继承的概念:允许派生类有多个基类的现象。2.声明多种继承的方法:class 派生类名:成员访问限定符 基类名1,成员访问限定符 基类名2{新增成员};3.多种继承派生类的构造函数:一般形式:派生类名(总参表列):基类名1 构造函数(参数表)基类名2 构造函数(参数表)4.代码示例如下:#include<iostream>#include...原创 2019-06-16 15:32:01 · 119 阅读 · 0 评论 -
特殊的递归问题
#include<iostream>using namespace std;int main(){ void f(int x); int x; cout << "please input a integer:"; cin >> x; f(x);}void f(int x){ if (x >= 10) f(x / 10); cout << x % 10;}原创 2019-04-26 20:38:35 · 300 阅读 · 1 评论 -
选择排序法和冒泡排序法
例题:自定义函数,从键盘输入N个数,对它进行从小到大的排序,要求从主函数输出排序的结果。方法一:冒泡排序法#include<iostream>#define N 10 using namespace std;int main(){ void bubble_sort(int a[]); int a[N], i; cout << "please input...原创 2019-04-28 20:14:27 · 6226 阅读 · 0 评论 -
类和对象的特征
面向对象的程序设计的4个特点:封装性,继承性,多态性,抽象性。**基于对象程序设计的两个特点:**抽象性和封装性,其中面向对象程序设计是在基于对象程序设计的两个特点的基础上,再加两个特点即多态性和继承性发展而来的。对象的两个因素(要素):数据和操作(函数)。面向对象程序设计的封装性:将对象的数据和功能对外隔绝,以防止外部修改。对象的对外接口是函数名。类是对象的抽象:对象是类的一个具体实...原创 2019-04-28 20:44:45 · 1823 阅读 · 0 评论 -
利用构造函数对类对象进行初始化
1.利用主函数对成员函数的调用来对对象的数据成员进行初始化。实例:#include<iostream>using namespace std;class Sum{public: void set_value() { cin >> a >> b; } int sum() { return a + b; }private: int...原创 2019-05-05 17:45:18 · 1904 阅读 · 0 评论 -
对象数组
1.定义对象数组的形式 类名 对象名 数组名[].2.为对象数组初始化的方法:(1)只有一个参数的情况:#include<iostream>using namespace std;class Squ{public: Squ(int x) { a = x * x; cout << a<<" "; }private: int a;}...原创 2019-05-07 17:52:23 · 144 阅读 · 0 评论 -
指向成员函数的指针和this指针
1.指向类的成员函数的指针(1)定义的一般形式:数据类型 (类名:: * 指针变量名)(参数表列)(2)使成员函数指针指向类的共用成员函数的一般形式:函数指针名=&类名::函数名(3)利用函数指针调用类的成员函数一般形式:(对象名 . 函数指针名)()#includeusing namespace std;class Time{public:Time(int h, in...原创 2019-05-07 20:32:49 · 2648 阅读 · 0 评论 -
对友元的介绍
一.对友元的介绍分为友元函数和友元类。二.对友元函数的介绍分为普通友元函数和友元成员函数。1.对普通友元函数的介绍:将普通函数声明为友元函数。代码示例如下:#include<iostream>using namespace std;class Sum{public: Sum(int a,int b)//定义有参构造函数 { x=a,y=b; } friend...原创 2019-05-24 17:21:48 · 128 阅读 · 0 评论 -
公用数据的保护
一.常对象(1)常对象的定义形式:类名 const 对象名 [ 实参表列](2)常对象定义时必须初始化。(3)如果一个对象被定义为常对象,则只能调用它的常成员函数,而不能调用其他普通成员函数。(4)一旦被定义为常对象,只能保证其中的数据成员不被修改,而不是所有成员函数都是常成员函数。二.常成员函数(1)常成员函数的定义形式:类型名 (类名::)函数名(实参表) const.(2)调用...原创 2019-05-11 16:14:35 · 143 阅读 · 0 评论 -
与类有关的指针小结
1.指向对象的指针定义形式:类名 * 指针变量名。使用方式:指针变量名=&对象名。含义:对象空间的起始地址就是对象的指针。2.指向成员函数的指针定义形式:数据类型名 (类名:: 指针名)(参数表列)*使用方式:指针变量名=& 类名:: 成员函数名含义:成员函数的入口地址就是成员函数的指针。3.指向数据成员的指针定义形式:数据类型名 * 指针变量名。使用方式:指针...原创 2019-05-12 15:21:06 · 384 阅读 · 0 评论 -
对象的动态建立和释放
1.可以用new运算符动态地建立一个对象,并且它建立的对象是无名对象,但它是实际存在的。2.动态对象的建立方法:new 类名3.可以用新建立的对象指针表示动态建立的无名对象返回的地址,如new BoxBox *b=new Box还可以对它进行初始化,如new BoxBox *b=new Box(1,2,3)4.用new建立的对象一般是通过对象指针名来访问的。5.其中的new ...原创 2019-05-12 16:26:14 · 199 阅读 · 0 评论 -
类模板
1.对于类模板来说,其功能是相同的,但数据类型是不同的。2.关于类模板的声明和类模板对象的声明方法。类模板声明:template<class 类型参数名>类模板对象的声明:类模板名<实际类型名> 对象名(参数表列)3.代码示例:#include<iostream>using namespace std;template<class numty...原创 2019-05-25 20:45:08 · 378 阅读 · 0 评论 -
对象的赋值和复制
对象的赋值1.赋值的一般形式:对象名 2=对象名 1,是通过赋值号进行赋值的。2. 进行赋值的两个对象必须是两个同类对象。3.赋值时,其中一个对象应是确定的,即这个对象的数据成员是确定的。对象的复制1.对象复制的一般形式:类名 对象名2(对象名1。2.也可以通过这样的形式进行复制:类名 对象名2=对象名1。3对象的复制是通过复制构造函数进行的。如:Box(Box &b)...原创 2019-05-18 13:35:15 · 3664 阅读 · 0 评论 -
静态成员
一.静态成员分为静态数据成员和静态成员函数。二.静态成员可以实现多个对象的共享,突破使用全局变量的局限。三.静态数据成员的介绍1.静态数据成员的定义形式:static 类型名 变量名。2.静态数据成员不属于任何一个对象,它是属于类的,故它能被所有对象共享。3.静态数据成员不能用参数初始化表初始化,它的定义形式一般为:数据类型名 类名::静态数据成员名=初值。4.静态数据成员的...原创 2019-05-18 17:30:42 · 1169 阅读 · 0 评论 -
派生类
1.派生类是对类的具体化,而类是派生类的抽象。2.派生类的声明方式:**class 派生类名 继承方式 基类名。**3.派生类的继承方式有protected private public。4.公用继承的介绍:代码示例如下:#include<iostream>#include<string>using namespace std;class Studen...原创 2019-05-28 12:05:14 · 5725 阅读 · 0 评论 -
派生类的构造函数和析构函数
一.简单派生类的析构函数和构造函数。1.简单派生类构造函数的定义形式:派生类构造函数名 (总参数表列):基类构造函数名 (参数表列){ 派生类新增加数据成员初始化语句}其中,总参数表列中的参数包括派生类参数和基类参数,且基类参数放在最前面。参数表列里中只有参数名,没有参数类型。2.注意简单派生类构造函数的定义形式中,中间有一个冒号。3.参数表列的参数并不是形参,而是实参,它是由总参数表列...原创 2019-06-01 18:10:50 · 2442 阅读 · 0 评论 -
运算符重载
1.函数重载的概念:对一个已有的函数赋予新含义。2.运算符重载的一般形式:函数类型 operator 运算符名称(形参表列){运算符重载函数体}。3.重载运算符函数的函数名为 数据类型名 operator。4.对于同一运算符,编译系统是根据操作对象两侧的数据类型(如果是单目运算符则为一侧)来决定要编译的函数的。5.重载运算符的几个规则:(1)不能改变操作数个数(2)不能改变优先级(3)不能...原创 2019-06-08 15:29:49 · 332 阅读 · 0 评论 -
指针或引用的灵活运用
一.输入三个整数,按由小到大的顺序输出。1.指针方法:#include<iostream>using namespace std;int main(){ void sort(int *x, int *y, int *z); int a, b, c; cin >> a >> b >> c; sort(&a, &b,&a...原创 2019-08-17 09:55:04 · 138 阅读 · 0 评论