C系列C++
C++开发
尘世壹俗人
做一只马喽
展开
-
C++入门递归青蛙过河
青蛙过河的问题是这样的:算法如下#include "stdio.h"//青蛙过河 函数int fun(int y,int s){ //(k+1)*2^s if(s==0) //石柱为0 { return y+1; //返回荷叶+1 } else { return fun(y,s-1)*2; }}void main(){ int y,s; printf("请输入荷叶:"); scanf("%d",&y); printf("请输入石柱:");原创 2021-01-15 09:16:41 · 1293 阅读 · 0 评论 -
C++入门算法荷兰国旗
荷兰国旗说的其实是一个二分类问题,就是红、白双球分类,同类要挨着的问题/* Note:Your choice is C IDE */#include "stdio.h"#define MAX 100//荷兰国旗 传数组 长度void fun(int a[],int len){ int head=0,last=len-1,doing=0,t,i; while(doing<=last) { if(a[doing]==0) { t=a[doing]; a[doin原创 2021-01-15 09:16:23 · 1172 阅读 · 0 评论 -
C++入门顺序表以及顺序表的查找
#include"stdio.h"#define M 20//顺序表的结构体struct xx { int a[M],b;};int search(struct xx *s ,int cz);void main(){ struct xx s; int cz,j,c; s.b=0; printf("输入十个数:\n"); for(j=1;j<=10;j++) { printf("输入第%d个数:\n"); scanf("%d",&s.a[s.b+1]);原创 2021-01-14 09:11:45 · 418 阅读 · 0 评论 -
C++入门模拟队列
#include"stdio.h"#define M 5 struct dl{ int a[M],front,rear;//队列 头 尾 }d;void rd(struct dl *d);void cd(struct dl *d);void out(struct dl *d);void main(){ int gn,js=0; d.front=d.rear=0; for(;js!=1;) { printf("1 入队\n"); printf("2 出对\n");原创 2021-01-14 09:11:09 · 141 阅读 · 0 评论 -
C++入门模仿栈的工作
#include"stdio.h"#define M 5struct stack{//栈包括两个内容:存储元素的数组与栈顶的标识top int a[M]; int top;}z;//定义栈的变量 void main(){ //栈没有输入一说,是直接入栈 z.top=-1; //入栈 //先判断是否栈满 if(z.top>=M) { printf("栈满!!!!\n"); } else { z.top++; printf("入栈元素:"); sc原创 2021-01-14 09:10:27 · 66 阅读 · 0 评论 -
C++入门案例截取字符串
刚学习代码的朋友应该都会被要求写这些入门东西,所以给大家准备了一个字符串的截取,也可以看我其他的文章#include"stdio.h"//传参:主串 下标 长度 void jq(char zhu[50],int ks,int cd);void main(){ char zhu[50]; int ks,cd;//开始 长度 printf("请输入主串"); scanf("%s",zhu); printf("开始位置:"); scanf("%d",&ks); pri原创 2021-01-14 09:10:03 · 208 阅读 · 0 评论 -
C++入门手写希尔排序
希尔排序,必须会直接插入排序#include "stdio.h"#define MAX 100struct slist{ float a[MAX]; int len; }; // 传 结构体指针 不要返回值void fun(struct slist *s){ int i,j; float t; int k; for(k=s->len/2;k>=1;k=k/2) { for(i=k;i<s->len;i++) { t=s->a[i原创 2021-01-14 09:09:01 · 93 阅读 · 0 评论 -
C++入门手写直接插入排序
/* Note:Your choice is C IDE */#include "stdio.h"#define MAX 100struct slist{ int a[MAX]; int len; }; //直接插入排序 传 结构体指针 不要返回值 void fun(struct slist *s){ int i,j,t; //10个需要9趟 循环9遍 for(i=1;i<s->len;i++) //i 1.表示循环的遍数 2.表示无序区下标 { t原创 2021-01-14 09:06:07 · 116 阅读 · 0 评论 -
C++入门手写简单选择排序
#include "stdio.h"#define MAX 100struct slist{ int a[MAX]; int len;};//简单选择排序void fun(struct slist *s){ int i,j,min; int t; for(i=0;i<s->len-1;i++) { min=i; for(j=i+1;j<s->len;j++) { if(s->a[j]<s->a[min]) {原创 2021-01-14 09:05:31 · 86 阅读 · 0 评论 -
C++入门手写冒泡排序
/* Note:Your choice is C IDE */#include "stdio.h"#define MAX 100struct slist{ float a[MAX]; int len;};//冒泡排序void fun(struct slist *s){ int i,j,flag=0; //i代表循环的趟数 j代表内侧比较的下标 float t; for(i=1;i<s->len;i++) { //每趟排序开始 flag=0; for(j=原创 2021-01-14 09:05:05 · 215 阅读 · 0 评论 -
C++入门手写折半查找
折半查找由于其实现原理所限制,因此使用它必须保证要查找的数据是有序的/* Note:Your choice is C IDE */#include "stdio.h"#define MAX 100struct slist{ int a[MAX]; int len; };//折半查找 传 顺序表指针 要查找的元素 // 返回值 -1 查找失败//按照从小到大 写的int search(struct slist *s,int key){ //头 中间 末尾 int原创 2021-01-14 09:04:39 · 124 阅读 · 0 评论 -
C++入门链表怎么写
#include"stdio.h"/* 链表是线性表的链式存储 链表由一个一个结点组成 每一个节点分为指针域和数据域 指针域有一个的叫单链表 ,有两个叫双链表,三个及三个以上的叫多链表 结点的单词叫“node” struct node{ int data;//数据域存储数据; struct node *next; //指针域,指向下一个节点的地址 } 分配空间用malloc 释放空间用free 计算字节大小sizeof 创建链表三步骤 1:先给结点申请原创 2021-01-14 09:10:42 · 312 阅读 · 0 评论 -
C++的 * & . 有什么用
在C++中你如果看到一个普通的变量前面有一个星号“ * ”,那么就代表着它的并不直接代表着某一个具体值,而是用来存储一个内存中的地址举个例子来说#include"stdio.h"int main(){ int *p; p=0; printf("%d",&p); }上面的操作中,我给p一个0,当我输出的时候按照惯例应该是0,但是真的是这样吗??其实不是,它输出的结果为:6487576从上面这个例子中可以看出其实这个时候的p只是存储了一个地址值,充当了一个指针的作用,指向了一原创 2021-01-13 10:45:43 · 1514 阅读 · 1 评论 -
C++结构体可以嵌套吗
C++的结构体其实就是一个没有方法的类,既然他是类那当然可以嵌套了#include"stdio.h"#define M 20 struct xx{ int xh; char mz[10]; int nl; char jg[20],xb[20];};//类型 struct sxb{//顺序表 顺序表的结构都是一样的 struct xx a[M]; int b;}sxbb;void main(){ int j; sxbb.b=0; for(j=0;j<5;j++)原创 2021-01-13 10:02:27 · 751 阅读 · 0 评论 -
C++汉诺塔
#include"stdio.h"int dg(int n);void main(){ int n; printf("有几个盘子n\n"); scanf("%d",&n); printf("%d个盘子需要的步数为%d",n,dg(n)); } int dg(int n){//递归的函数 if(n==1){//一直调用直到到达递归边界,也就是最后一个明确值 return 1; } else{//一直递归如果前一个问题还是未知的就在此调用 return 2*dg(n-原创 2021-01-13 09:39:00 · 193 阅读 · 0 评论 -
C++的strcmp方法
这个方法其实是用来比较字符串的值的,因为如果直接==那么比较的是地址值,不是字符串的值#include "stdio.h"void main(){ char flower[100]; for(;;)//while(1) { printf("请输入鲜花的名称:"); scanf("%s",flower); if(strcmp(flower,"百合")==0) { printf("心想事成\n"); } els原创 2021-01-13 09:36:56 · 2878 阅读 · 2 评论 -
C++杨辉三角
/* Note:Your choice is C IDE */#include "stdio.h"void main(){ int a[100][100]; int i,j; int n;//实际行数 printf("行数:"); scanf("%d",&n);// printf("您老要输出几行:?");// scanf("%d",&m); for(i=0;i<n;i++) { for(j=0;j原创 2021-01-13 09:36:40 · 272 阅读 · 0 评论 -
C++各种常用名词的意思
float pj(int fs[3]){ int zh=0,j; for(j=0;j<3;j++){ zh+=fs[j]; } return zh/j;}上面这个方法中,pj是方法名,方法名前面的float叫做返回值类型,{ }叫做方法体,return叫做返回值关键字,在拥有返回值的情况下,用来返回符合返回值类型的值,也被常用来结束一个方法的运行无参无返方法说的是返回值类型为void,没有返回值,且没有参数的方法无参有反和有参有返,根据无参无返的解释我相信大家都可以猜的出来是什么原创 2021-01-13 09:36:11 · 466 阅读 · 0 评论 -
C++的gets和puts
这两个方法和printf与scanf可以说是一个作用,但是他们内部运行的原理缺不一样#include"stdio.h"main(){ char a[100]; printf("请输入字符串:"); gets(a); printf("输出为:"); puts(a); }gets和scanf一样是获取一个键盘上输入的字符串,但是gets方法接收一切特殊字符的输入,不会因为有空格等特殊字符而打断比如输入的是:123 456,中间有个空格scanf只能接收到123,而gets可以全部接收到原创 2021-01-13 09:35:43 · 1615 阅读 · 0 评论 -
C++中sizeof用来干什么的
#include"stdio.h"main(){ int a; printf("%d",sizeof(a)); }sizeof其实是一个字节运算符,它可以计算出一个变量类型的所占内存大小原创 2021-01-13 09:35:25 · 205 阅读 · 0 评论 -
C++的常量怎么定义
C++定义常量的两种方式:第一种: #define A 3;第二种: const A 3;区别:第一种方式:是将A定义成一种符号,在程序任意的位置中A就是3的代表第二种方式:A的本质还是一个变量,但编译器对它的值是固定不变的,如果在程序中修改它的值,会报错...原创 2021-01-12 09:38:07 · 2929 阅读 · 0 评论 -
C++二维数组,以及二维数组的转置
我们常用的数据叫做一维数组,是一串连续的内存空间,二维数组是在一维数组的基础上,相当于每一个元素又是一个一维数组二维数组的定义也很简单//定义一个十行十列的二维数组,也可以说是一个连续的拥有10个大小为10的一维数组int a[10][10]二维数组使用的话需要借助与循环嵌套,比如输入for(h=0;h<5;h++) { for(l=0;l<5;l++) { printf("输入a[%d][%d]",h,l); scanf("%d",&a[h][l])原创 2021-01-12 09:37:51 · 3081 阅读 · 1 评论 -
C++递归
递归说的是方法自身对自身的调用方式比如递归的阶乘#include"stdio.h"int dg(int n);void main(){ int n; printf("输入n\n"); scanf("%d",&n); printf("%d的阶乘为%d",n,dg(n)); } int dg(int n){//递归的函数 if(n==1){//一直调用直到到达递归边界,也就是最后一个明确值 return 1; } else{//一直递归如果前一个问题还是未知的就在此调用原创 2021-01-12 09:37:24 · 311 阅读 · 0 评论 -
用C++说一下啥是形参,啥是传参
#include"stdio.h"#include"string.h"void xs(int a);main(){ int b; printf("输入b"); scanf("%d",&b); //我们调用函数时传入的具体值的叫做传参 xs(b);}/*我们写在方法名后面的叫做形参,它自己本身是没有值的 只不过是一个可以描述传出参数用途的一个站位用的东西 */ void xs(int a){ printf("%d",a*1000);}...原创 2021-01-12 09:37:04 · 207 阅读 · 0 评论 -
C++结构体
C++的结构体说的高大上,其实就是一个没有方法,只用成员变量的类而已#include"stdio.h"struct jgt{ char xm[50]; int xh,cj;};main(){ struct jgt a[5]; int j; for(j=0;j<5;j++){ printf("请输入第%d为同学的信息\n",j+1); printf("姓名"); scanf("%s",a[j].xm); printf("学号"); scanf("%d",&a原创 2021-01-12 09:36:39 · 191 阅读 · 0 评论 -
C++水仙花
水仙花说的是一个三位数,它需要符合个位、十位、百位的立方和等于它本身的这一规则#include"stdio.h"main(){ printf("\n\t水仙花数\n"); int a,b; int at;//a的替换值 printf("请输入初始值"); scanf("%d",&a); printf("请输入终止值"); scanf("%d",&b); at=a; if(at>b) { at=at+b; b=at-b; at=at-b; }原创 2021-01-12 09:36:23 · 839 阅读 · 0 评论 -
C++穷举百元分配
#include"stdio.h"main(){ int y,s,w,er,ws,z; for(y=0;y<=100;y++){ for(w=0;w<=20;w++){ for(s=0;s<=10;s++){ for(er=0;er<=5;er++){ for(ws=0;ws<=2;ws++){ if(y*1+w*5+s*10+er*20+ws*50==100){ printf("一元%d张\n",y);原创 2021-01-12 09:36:04 · 163 阅读 · 0 评论 -
C++打印圣诞树
#include"stdio.h"main(){ int h,l; for(h=1;h<=10;h++){ for(l=10;l>=h;l--){ printf(" "); } for(l=1;l<=h*2-1;l++){ if(l==1||l==h*2-1||h==10){ printf("*"); } else{ printf(" "); } } printf("\n"); } for(h=1;h<=原创 2021-01-12 09:35:46 · 9199 阅读 · 0 评论 -
C++空心倒三角
#include"stdio.h"main(){ int h,l,a,b; printf("输入你想要的行与列:"); scanf("%d %d",&a,&b); for(h=1;h<=a;h++){ for(l=b;l>=h;l--){ if(l==b||l==h||h==1){ printf("*"); } else{ printf(" "); } } printf("\n"); }}结果输入你想要的行与原创 2021-01-12 09:35:37 · 639 阅读 · 0 评论 -
C++打印菱形
#include"stdio.h"main(){ int h,l; for(h=1;h<=10;h++){ for(l=10;l>=h;l--){ printf(" "); } for(l=1;l<=h*2-1;l++){ if(h==1||l==1||l==h*2-1){ printf("*"); } else{ printf(" "); } } printf("\n"); } //printf("\n");原创 2021-01-11 09:55:44 · 269 阅读 · 0 评论 -
C++入门小案例阶乘
#include"stdio.h"main(){ int chuzhi,jiecheng,ji=1; printf("请输入您想求几的阶乘"); scanf("%d",&chuzhi); jiecheng=chuzhi; do{ ji=ji*jiecheng; jiecheng--; }while(jiecheng>0); printf("%d",ji); } 请输入您想求几的阶乘5120...原创 2021-01-11 09:54:19 · 108 阅读 · 0 评论 -
C++入门小案例简易计算机
#include<stdio.h>main(){ //重复输入计算 int a,b;//a,b是我要进行运算的操作数 char c,d; //c是运算符,d是否继续运算的符号 while(d!='n'){ printf("请输入要计算的表达式:"); scanf("%d%c%d",&a,&c,&b); switch(c){ case '+': printf("结果是:%d+%d=%d\n",a,b,a+b); b原创 2021-01-11 09:51:21 · 452 阅读 · 0 评论 -
C++输出棋盘
#include"stdio.h"main(){ int h,l; for(h=1;h<=10;h++){ for(l=1;l<=10;l++){ if((h+l)%2!=0){ printf("■"); }else{ printf(" "); } } printf("\n"); }}原创 2021-01-11 09:47:07 · 2079 阅读 · 0 评论 -
C++斐波那契数列
斐波那契数列说的是一个数列中从第三位开始,每一项为前两项的和#include"stdio.h"main(){ int a=1,b=1,c; int ji; printf("%d\n",a); printf("%d\n",b); for(ji=1;ji<=20;ji++) { c=a+b; printf("%d\n",c); a=b; b=c; } }11235813213455891442333776109871597原创 2021-01-11 09:43:13 · 1692 阅读 · 0 评论 -
C++打印等腰三角形
#include"stdio.h"main(){ int h,l; for(h=1;h<=10;h++){ for(l=10;l>=h;l--){ printf(" "); } for(l=1;l<=2*h-1;l++){ printf("*"); } printf("\n"); }}效果 * *** ***** ******* *******原创 2021-01-11 09:35:58 · 5445 阅读 · 1 评论 -
C++ n行n列倒三角
#include"stdio.h"main(){ int h,l; int a,b; printf("输入你想要的行与列:"); scanf("%d %d",&a,&b); for(h=1;h<=a;h++){ for(l=b;l>=h;l--){ printf("*"); } printf("\n"); }} 效果输入你想要的行与列:5 5***************...原创 2021-01-11 09:22:17 · 496 阅读 · 0 评论 -
C++ do-while使用
do-while是先做后判断,所以使用的时候要谨慎,因为它可能会导致多做一次操作#include"stdio.h"main(){ char zimu; int sum=0; printf("请输入一串字母\n"); do{ scanf("%c",&zimu); if(zimu>='A'&&zimu<='Z') { sum++; } }while(zimu!='\n'); printf("大写字母的总数为:%d",sum原创 2021-01-11 09:22:04 · 341 阅读 · 0 评论 -
C++ 随机输入字符计算大小写个数
#include"stdio.h"main(){ int dageshu=0,xiaogeshu=0; char zimu; printf("输入一个字母(回车则结束计数)\n"); do{ scanf("%c",&zimu); //底层其实计算的是 ASCII码值 if('A'<=zimu&&zimu<='Z') { dageshu++; } else if('a'<=zimu&&zimu<原创 2021-01-11 09:21:49 · 560 阅读 · 0 评论 -
C++ 输出正常的九九乘法口诀表
#include"stdio.h"main(){ int h,l; for(h=1;h<=9;h++){ for(l=1;l<=h;l++){ printf("%d*%d=%d\t",h,l,h*l); } printf("\n"); }}1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=165*1=5 5*2=10 5*3=15 5*4=20 5*5=256*原创 2021-01-11 09:21:37 · 1745 阅读 · 0 评论 -
C++百鸡百钱问题
大鸡5元,小鸡3元,雏鸡一元3只#include"stdio.h"main(){ int d,x,c;//大鸡5元,小鸡3元,雏鸡一元3只 for(d=0;d<=20;d++){ for(x=0;x<=33;x++){ for(c=0;c<=100;c++){ if(d+x+c==100&&d*5+x*3+c/3==100){ printf("可以买大鸡%d只\n",d); printf("可以买小鸡%d只\n",x);原创 2021-01-10 16:24:42 · 681 阅读 · 0 评论