![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
|--------------C++学习
文章平均质量分 71
丁棒儿
人生如棋,我却如卒,虽行动缓慢,但却不曾退却一步。
展开
-
第三章——输入一个不多于5位的数,然后输出它是几位数,输出它的每一位数,逆序输出该数。
题目:输入一个不多于5位的数,要求:1、输出它是几位数;2、分别打印出每一位数字;3、按照逆序打印出各位数字。 思路一:通过数组,保存每一位数字。#includeusing namespace std;int main(){ char a[5]; int i=0; while((a[i]=getchar())!='\n'){ i++; if(i>5)原创 2013-04-21 21:36:05 · 3031 阅读 · 0 评论 -
C++输出九九乘法表
/*打印九九乘法表*/#includeusing namespace std;int main(){ int i,j; for(i=1;i<10;i++){ for(j=1;j<10;j++){ cout<<i<<"×"<<j<<"="<<i*j<<"\t"; } cout<<"\n"; } return 0;}原创 2013-04-13 23:44:45 · 18695 阅读 · 0 评论 -
C语言之Main函数返回值问题分析
C语言之Main函数返回值问题分析: 很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 "The definition void main( ) { /* ... */ } is not and never has been转载 2013-04-14 10:39:04 · 2422 阅读 · 1 评论 -
操作系统实验一
实验目的1) 加深进程概念的理解;2) 掌握进程状态转变;3) 掌握进程调度策略。实验要求1) 编写程序完成实验内容;2) 在实验报告中画出程序流程图;3) 撰写实验报告。实验内容1) 设计可用于该实验的进程控制块,进程控制块至少包括进程号、状态和要求服务时间;2) 动态或静态创建多个进程;3) 模拟操作系统四种进程调度算法中的任意一种转载 2013-04-14 10:43:44 · 2339 阅读 · 1 评论 -
操作系统实验二 作业调度
实验目的1) 加深作业概念的理解;2) 掌握选择作业调度算法的准则;3) 掌握作业调度算法。实验要求1) 编写程序完成实验内容;2) 对测试数据进行分析;3) 撰写实验报告。实验内容1) 设计可用于该实验的作业控制块;2) 动态或静态创建多个作业;3) 模拟先来先服务调度算法和短作业优先调度算法。4) 调度所创建的作业并显示调度结转载 2013-04-14 10:47:44 · 3903 阅读 · 0 评论 -
输入两个正整数m和n,求其最大公约数和最小公倍数
首先是求其最大公约数的代码:通过辗转相除法:#includeusing namespace std;int MaxY(int a,int b){ int min,max; max=a>b?a:b; min=a<b?a:b; if(max%min==0) return min; else return MaxY(min,max%min);} int main(){ i原创 2013-04-23 00:36:30 · 3322 阅读 · 0 评论 -
通过引用实现三个数字求最大值
通过这个例子来说明引用的作为函数参数的使用方法。请看代码:#includeusing namespace std;int main(){ void max(int &, int &);//当引用作为函数参数时,声明函数的方法 int a[3]; cout<<"please input three numbers:"; cin>>a[0]>>a[1]>>a[2];原创 2013-04-16 12:56:05 · 1610 阅读 · 0 评论 -
打印所有的水仙花数
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)实现代码:/*打印所有的水仙花数*/#includeusing namespace std;int main(){ int i,a[3]; int san(int x); cout<<"所有的水仙花数:"<<endl; for原创 2013-04-25 21:03:54 · 1697 阅读 · 0 评论 -
猴子吃桃问题
猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子?分析:假设某一天为n2,其前一天为n1。则n2=n1/2-1; 反解得到n1=(n2+1)*2;以此作为从后往前推的一句,根据最后一天剩下的桃子数量,求第一天的桃原创 2013-04-26 00:03:57 · 2890 阅读 · 1 评论 -
求 2/1,3/2 ,5/3 ,8/5 ,13/8, 21/13...... 这个数列的前20项之和
分析一下该数列的特点,不难发现,每一项(从第二项开始)的分母是前一项的分子和分母的和,分子是前一项的分子。其核心代码是:m=m+n;//m是分子n=m-n;//n是分母实现代码:/*求 2/1,3/2 ,5/3 ,8/5 ,13/8, 21/13......这个数列的前20项之和 */#includeusing namespace std;int main()原创 2013-04-25 23:33:57 · 4042 阅读 · 0 评论 -
输出100以内的完数
各个小于它的约数(真约数)的和等于它本身的自然数叫做完全数(Perfect number),又称完美数或完备数。(列出某数的约数,去掉该数本身,剩下的就是它的真约数) 例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。 第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4原创 2013-04-25 22:20:05 · 8679 阅读 · 1 评论 -
C++输出一个菱形
实现代码:#includeusing namespace std;int main(){ int i,j; for(i=0;i<4;i++){ cout<<"\t\t"; for(j=0;j<3-i;j++)cout<<" "; for(j=0;j<2*(i+1)-1;j++)cout<<"*"; cout<<endl; } for(i--;i>=0;i--){原创 2013-04-26 22:40:55 · 3370 阅读 · 0 评论 -
关于数组做函数参数的问题汇总
首先是数组元素作为函数的实参,这和直接用多个变量作为函数的实参在用法上没有什么差别。作为例子的代码:#includeusing namespace std;int main(){ int max(int a,int b); int a[2],m; a[0]=1; a[1]=2; m=max(a[0],a[1]); cout<原创 2013-04-20 13:27:13 · 1261 阅读 · 0 评论 -
第3章——使用getchar和putchar
题目:用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和cout语句输出这两个字符,并输出对应的ASCII码。代码:#includeusing namespace std;int main(){ char a[2]; cout<<"请输入两个字符:"; a[0]=getchar(); a[1]=getchar(); putchar(原创 2013-04-20 17:29:27 · 1632 阅读 · 0 评论 -
c++中#include <>与#include""
首先是区别:而""首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。 然后是使用习惯的问题:假设A是常被包含的文件。则A中写的应该是一些 常用的函数,和一些宏定义。而且,不能出现main函数。原创 2013-04-20 18:41:02 · 1170 阅读 · 0 评论 -
第三章——多个if——else的情况
题目:给出一个百分制的成绩,90分以上为A;80~89为B;70~89为C;60~69为D;60分一下为E。要求输入一个成绩,输出对应的等级。分析:这是一个典型的多选择性问题,一般方法是使用多个if和else的情况。代码:使用多个if和else的结构#includeusing namespace std;int main(){ double x;原创 2013-04-21 11:37:29 · 1818 阅读 · 0 评论 -
通过一个函数,判断输入的数是不是素数
#include#includeusing namespace std;int main(){ int primenum(int n); int m; cout<<"please input a number:"; cin>>m; if(primenum(m)==true){ cout<<m<<" is a prime number"<<endl; }else{ cout原创 2013-05-21 23:26:54 · 1796 阅读 · 0 评论 -
C++编程,求你自己活了多少天
说明:用户需要输入自己的出生时间和当前的时间,程序会自动计算您活了多少天了=.=/*C++编程,求你自己活了多少天*/#include using namespace std;int main(){ int y1,y2,m1,m2,d1,d2; int panduan(int y,int m,int d);//计算天数的函数的声明 double total=0; co原创 2013-06-07 00:44:49 · 5229 阅读 · 1 评论 -
用C++实现,输入一个日期,输出它是一年中的第几天。
操作代码: #include using namespace std; int main() { int y,m,d,total=0,i; int db[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31原创 2013-04-13 23:27:56 · 10400 阅读 · 0 评论 -
C++实现筛选法
筛选法介绍:筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛子。具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3原创 2013-06-23 22:13:48 · 5025 阅读 · 0 评论 -
C++输出斐波那契数列的几种方法
定义:斐波那契数列指的是这样一个数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...这个数列从第三项开始,每一项都等于前两项之和。以输出斐波那契数列的前20项为例:方法一:比较标准的做法,是借助第三个变量实现的。#include using namespace std;int main(){原创 2013-06-24 00:26:30 · 31706 阅读 · 3 评论 -
用C++的基本算法实现十个数排序
冒泡排序法原理:它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有原创 2013-06-23 23:37:13 · 5569 阅读 · 0 评论 -
C++实现矩阵的相加/相称/转置/求鞍点
本文介绍用C++表示矩阵的加法/乘法/转置以及求鞍点的操作。其中,C++的加法较为基础,乘法/转置和求鞍点操作相对复杂些~原创 2013-07-13 16:36:55 · 8511 阅读 · 0 评论 -
C++输出上三角/下三角/菱形/杨辉三角形
1.输出上三角形第一行1个星,第二行3个星,第三行5个星,第四行7个星,第五行9个星。分析:三角形的形状由输出的空白和星组成,通过分析每一行输出几个空格,几个星,就可完成输出三角形的工作。#includeusing namespace std;int main(){ int i=0,j=0; for(i=1;i<=5;i++){//控制行数 for(j=1;j<=(原创 2013-07-13 08:40:30 · 15274 阅读 · 0 评论 -
先对数组排序,在进行折半查找(C++)
#includeusing namespace std;int main(){ int a[15]; int i,j,k,tool,tag,start,end,n; cout<<"Please input 15 numbers:"<<endl; for(i=0;i<15;i++){ cin>>a[i]; } cout<<"Sorted order:"<<endl; for(原创 2013-07-15 23:36:49 · 2678 阅读 · 0 评论 -
C++实现数组的排序/插入重新排序/以及逆置操作
插入新的数字重新排序分析:将新的数字与已经排序好的数组中的数字一一比较,直到找到插入点,然后将插入点以后的数字都向后移动一个单位(a[i+1]=a[i]),然后将数据插入即可。代码:#includeusing namespace std;int main(){ int a[12];//定义用于存储数字的数组 int n;//输入的新的数字 int i=0,j=0,原创 2013-07-04 13:51:26 · 4267 阅读 · 0 评论 -
输入3个字符串,将它们按照字母由大到小排序
.用string方法定义字符串变量实现代码:#include#includeusing namespace std;int main(){ string a,b,c,t; cout<<"please input first string:"<<endl; cin>>a; cout<<"please input second string:"<<endl; cin>>b;原创 2013-07-20 23:39:42 · 2552 阅读 · 0 评论 -
C++输入一个字符串,把其中的字符按照逆序输出的两种方法
用字符数组方法:基本思路是,先判断字符的结束标志'\0',然后从该位置向前输出。实现代码:#includeusing namespace std;int main(){ char a[50]; cout<<"please input a string:"; cin>>a; int i=0,k=0; while(i<50){ if(a[i]=='\0'){原创 2013-07-24 08:25:02 · 30670 阅读 · 2 评论 -
C++一维数组和指针的关系总结
一维数组:对于数组int a[10];a表示数组的第一个元素的地址,即&a[0];如果使指针p,指向数组的首元素,可以进行操作:int * p=a;或者int *p=&a[0];那么p++,是指向数组中的先一个元素,即a[1];此时*p则是a[1]中所放的值。此时,a[i]=p[i]=*(a+i)=*(p+i)下面举一个例子;直接用a[i]来输出原创 2013-07-24 14:21:02 · 3316 阅读 · 3 评论 -
C++用指针变量作为函数的参数接受数组的值的问题的总结
本文以输入10个整数,然后对其进行排序,然后输出的程序为例:形参为数组名,实参是数组名实例代码:#includeusing namespace std;int main(){ void Sort(int a[],int n); int a[10],i; cout<<"Please input 10 interges: "<<endl; for(i=0;i<10;原创 2013-07-24 21:35:57 · 3609 阅读 · 3 评论 -
用指向数组的指针作函数参数
1.一维数组名作为函数参数传递一位数组名,就相当于该数组的首个元素的地址;int a[10];int *p;p=a;//p=a与p=&a[0]是等价的实例代码:#includeusing namespace std;int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; void Print(int *p ,int n); Pri原创 2013-07-25 22:49:00 · 3774 阅读 · 0 评论 -
C++的引用的使用
1引用的定义引用时C++对C的一个重要的扩充,引用的作用是给变量起一个别名。例如:int a;int &b=a;//声明b是a的引用经过以上的声明,b就成为了a的别名,a和b的地位以及作用都是一样的。将b声明为a的引用,不需要再为b开辟新的单元,b和a在内存中占同一存储单元,它们具有相同的地址。#includeusing namespace std;int ma原创 2013-08-02 13:02:56 · 1266 阅读 · 0 评论 -
指针的数据类型和指针运算小结
1.指针的数据类型小结有关指针的数据类型定义含义int i;定义整形变量int *p;定义只想整型数据的指针变量pint a[n];定义整形数组a,它有n个元素int *p[n];定义指针数组p,它由n个指向整形数据类型的指针元素组成int (*p)[n];定义指向n个元素的一位数组原创 2013-08-01 19:57:37 · 3190 阅读 · 0 评论 -
C++中,访问字符串的三种方法
1.用字符数组存放一个字符串程序1:定义一个字符数组并初始化,然后输出其中的字符串。#includeusing namespace std;int main(){ char str[]="I lvoe China!"; cout<<str<<endl; return 0;}输出结果:I love China!str是字符数组名,它代表数组原创 2013-07-26 22:45:44 · 4082 阅读 · 5 评论 -
C++指针作为函数的参数进行传递时注意的问题
应注意问题:当指针作为函数的参数进行传递的时候,本质上还是进行的“值传递”,也就是复制了一个新的指向该地址的指针变量。只有在被调函数中,对指针进行引用操作,才可以达到不需要返回值,就对指针指向的变量做出相应的变化。下面分析这样两个例子;要求:定义并初始化两个字符串变量,并执行输出操作;然后调用函数使这两个变量的值交换,并且要求被调函数的传值通过传递指针来实现。程序1.1#i原创 2013-07-26 23:47:26 · 3067 阅读 · 0 评论 -
将字符串str1复制为字符串str2的三种方法
1.自己编写函数,将两个字符串进行复制#includeusing namespace std;int main(){ char str1[]="I love China!",str2[20]; void Strcpy(char *p1,char *p2); Strcpy(str2,str1); cout<<"str1: "<<str1<<endl; cout<原创 2013-07-26 23:18:38 · 9520 阅读 · 0 评论 -
多维数组与指针
1.指向数组元素的指针变量实例代码:#includeusing namespace std;int main(){ int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p; for(p=a[0];p<a[0]+12;p++){ cout<<*p<<" "; } cout<<endl; return 0;} p=a[0]等价原创 2013-07-25 21:56:25 · 1950 阅读 · 0 评论 -
C++指针数组和指向指针的指针
指针数组定义:如果一个 数组,其元素均为指针型数据,该数组为指针数组,也就是说,指针数组中的每一个元素相当于一个指针变量,它的值都是地址。形式:一维指针数组的定义形式为:int【类型名】 *p【数组名】 [4]【数组长度】;由于[ ]比*优先级高,因此p先与[4]结合,形成p[4]的数组的形式。然后与p前面的“ * ”结合,“ * ”表示此数组是指针类型的,每个数组原创 2013-07-29 00:19:53 · 9651 阅读 · 1 评论 -
数组中的最大值以及最小值的位置变换的问题(C++)
将一个5×5的数组中的最大值放到数组的中心位置分析:遍历数组,找到最大的元素,然后将该元素与中心位置的元素交换位置#include#include #include using namespace std;int main( void){ void changeArrayData(int *arrayAddress1, int *arrayAddress2);//声明交换原创 2013-08-07 10:49:36 · 7121 阅读 · 0 评论 -
通过函数指针调用函数
说明:指针可以不但可以指向一个整形,浮点型,字符型,字符串型的变量,也可以指向相应的数组,而且还可以指向一个函数。一个函数在编译的时候会被分配给一个入口地址。这个函数入口地址称为函数的指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。定义指向函数的指针变量的方法是:int (*p) (int ,int );int【指针变量p指向的函数的类型】 (*p)【p是指向函原创 2013-07-27 08:27:05 · 5781 阅读 · 0 评论