![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++代码
文章平均质量分 60
你好,明天,,
你好,明天。一个今天胜过两个明天。
展开
-
C语言基础------基础编程题目总结
C语言编程经验总结:1.求某一整数的十位,先取余再除以10。2.求某一整数字符串各位之和,可以使用-'0'操作。#include<stdio.h>#include<string.h>#include<stdlib.h>int main(){ char s[100000]; int i,sum=0; scanf("%s",&s); i=strlen(s); for(int j=0;j<i;j++){ ...原创 2021-03-21 11:34:37 · 950 阅读 · 0 评论 -
C语言经典算法100例
【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。2.程序源代码:#include "stdio.h"#include "conio.h"main(){ int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) ...原创 2021-03-02 14:42:16 · 4454 阅读 · 0 评论 -
C语言基础------结构体共用体
#include <stdio.h>struct st{ int x;int*y;}*p ;int dt[4]= {10,20,30,40};struct st aa[4]= {50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};main(){p=aa;printf("%d\n",++(*p->y));}++(*p->y))首先这句中, '->' 比 '*' 优先级要高。先计算p->y..原创 2021-01-30 10:21:04 · 1865 阅读 · 1 评论 -
C语言基础------二维数组详解
二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,如定义一个二维数组a:int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} };a的分布和矩阵类似:0 1 2 34 5 6 78 9 10 11但在内存中,a 的分布是一维线性的,整个数组占用一块连续的内存:C语言中的二维数组是按行排列的,也就是先存放 a[0] 行,再存放 a[1] 行,最后存放 a[2] 行;每行中的...原创 2021-01-29 12:36:12 · 2179 阅读 · 0 评论 -
C语言基础------自增自减条件判断循环
简单来说:++i 和 i++ 在单独使用时,都表示 i=i+1;––i 和 i–– 在单独使用时,都表示 i=i–1。而 a=++i 就相当于 i=i+1,a=i;a=i++ 就相当于 a=i,i=i+1。 同理,a=––i 就相当于 i=i–1,a=i;a=i–– 就相当于 a=i,i=i–1。亦即++i或--i先增一(减一)再使用,i++或 i--先使用再增一(减一)。//求 1! + 2! + 3! + ... + n!# include <stdio.h>int main.原创 2021-01-26 12:35:39 · 1769 阅读 · 0 评论 -
C语言基础编程
1. 删除字符串s中的空格#include<stdio.h>int main(){ char s[]="hhhh hh h"; int i,j; for(i=j=0;s[i]!='\0';i++) if(s[i]!=' ') s[j++]=s[i]; else s[j]=s[i];//可以去掉本行代码 s[j]='\0'; //printf("%s",s); puts(s);//这两种方法均可 return 0;}2. 删除字符串s中所有的字符 ‘c’..原创 2021-01-25 12:44:51 · 323 阅读 · 0 评论 -
C语言基础------指针
指针类型是C语言提供的一种特殊的基本数据类型。指针类型的变量中存放的不是待操作的数据,而是那些待操作数据的存储地址。‘&’ 被称为取地址运算符,只有输入字符串时,不需要使用运算符 &,因为数组名就是数组存储空间的首地址。定义一个指针型变量的语法格式是:<数据类型> * <指针型变量名>; ‘*’ 与‘&’ 相反,它将返回指针型变量所指变量的内容,因此,又被称为取内容运算,如 *intptr = 30,*chptr = 'p';。 基于指针的数据访问就原创 2021-01-21 16:52:30 · 593 阅读 · 0 评论 -
C语言之随机数
某班级30名学生某门课程的考试成绩,通过随机函数生成30个成绩数据,打印输出,并判断是否存在考试不及格的学生。使用rand( )函数,用函数srand( )完成随机数的初始化,time( )函数为srand( )提供初值。#include<stdio.h>#include<stdlib.h>//标准函数rand、srand的使用要求包含头文件stdlib.h #include<time.h>#include<iostream>//C++头文件..原创 2021-01-18 16:03:55 · 482 阅读 · 0 评论 -
C语言基础------排序及字符串相关操作总结
C语言 选择排序(这里是由大到小排序):#include<stdio.h> #include<stdlib.h>void SelectSort(int a[],int n){ int i,j,k,t; for(i=0;i<n-1;i++){ // n个元素需要进行(n-1)趟比较 for(j=i+1;j<n;j++){ //先使k记录排序范围内的第一个元素的位置 k=i; //找出最大元素的位置,由k记录 if(a[j]原创 2021-01-15 11:02:37 · 335 阅读 · 0 评论 -
C语言经典编程案例
C语言经典编程:1.打印输出hello world#include<stdio.h>int main(){ printf("hello world"); return 0;}2.一个整数加上100是一个完全平方数,加上168又是一个完全平方数,输出该数#include<stdio.h>int main(){ int x; int n,m; int i,j; for(i=1;i<168/2+1;i++){ ...原创 2021-01-12 22:11:59 · 6202 阅读 · 1 评论 -
C++/ C语言输出格式
首先看C++的:C++输出对齐需要包含头文件<iomanip>,当然对齐方式也分为左右两种:#include <iostream>#include<iomanip>using namespace std; int main(){ int a = 9999; int b = 999; int c = 99; //默认右对齐 ...转载 2019-07-19 17:53:49 · 917 阅读 · 0 评论 -
编译原理------语法分析器C/C++代码实现
一、实验目的编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。二、实验内容利用C语言编制递归下降分析程序,并对简单语言进行语法分析。2.1 待分析的简单语言的语法用扩充的BNF表示如下:⑴<程序>::=begin<语句串>end⑵<语句串>::=<语句>{;<语句>}⑶<...原创 2019-04-28 17:57:19 · 44794 阅读 · 12 评论 -
编译原理------词法分析器C/C++代码实现
一、实验目的设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。二、实验内容2.1 待分析的简单的词法(1)关键字:begin if then while do end所有的关键字都是小写。(2)运算符和界符: = + - * / < <= <> > >= = ; ( ) #(3)...原创 2019-04-17 10:08:27 · 38488 阅读 · 9 评论 -
十进制转换为二进制非递归栈实现
用栈实现十进制转换为二进制,用到模板库中的关于栈的部分函数。以下是C++源代码:#include<bits/stdc++.h>using namespace std;stack<int> sta;int main(){ int n; while(cin>>n){ while(!sta.empty()) sta.pop(); if(n...原创 2018-12-23 18:06:17 · 640 阅读 · 0 评论 -
数据结构------简单选择排序 C++ 实现
简单选择排序是一种选择排序。 选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 (1)从待排序序列中,找到关键字最小的元素;(2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;(3)从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。 简单选择排序的时间复杂...原创 2018-12-21 17:05:47 · 507 阅读 · 0 评论 -
数据结构C/C++代码实现 栈链表基本操作
实现栈链表基本操作:#include<stdio.h>#include<stdlib.h>typedef int ElemType;typedef struct linknode{ ElemType data; struct linknode *next;}LiStack;/****************初始化链栈*************...转载 2018-10-07 16:29:09 · 768 阅读 · 0 评论 -
数据结构C/C++代码实现 顺序表栈基本操作
顺序表栈基本操作的实现 源代码:#include<stdio.h>#include<stdlib.h>#include<iostream>using namespace std;#define MAXSIZE 100//#define Status int#define OK 1#define OVERFLOW -2#define Fals...原创 2018-10-07 16:38:15 · 934 阅读 · 0 评论 -
二叉树相关操作代码实现(先序、中序、后序遍历,递归及非递归算法实现,深度,结点数,叶子结点数等代码实现)
二叉树相关操作的实现(先序、中序、后序遍历,递归及非递归算法实现,深度,结点数,叶子结点数等代码实现)以下是源代码:#include<stdio.h>#include<malloc.h>#include<stack>#include<iostream>using namespace std;#define MAX 20typed...原创 2018-10-27 17:30:59 · 2810 阅读 · 0 评论 -
递归求N的阶乘
递归计算N的阶乘以下为源代码:#include<stdio.h>#include<iostream>using namespace std;int fact(int n){ if(n<0) cout<<"ERROR"<<endl; else if(n==1) return 1; else ...原创 2018-10-27 17:33:50 · 1540 阅读 · 0 评论 -
递归算法遍历二叉树(先序、中序、后序遍历二叉树,求树的深度,结点个数等)
递归实现二叉树基本操作源代码实现:#include<iostream>using namespace std;typedef struct node{ struct node * lchild; struct node * rchild; char data;}BiTreeNode,*BiTree;void CreateBiTree(BiTree &T...原创 2018-10-27 17:37:41 · 8862 阅读 · 2 评论 -
最小生成树------克鲁斯卡尔算法(数据结构)
树(Tree):如果一个无向连通图中不存在回路,则这种图称为树。生成树 (Spanning Tree):无向连通图G的一个子图如果是一颗包含G的所有顶点的树,则该子图称为G的生成树。生成树是连通图的极小连通子图。这里所谓极小是指:若在树中任意增加一条边,则将出现一条回路;若去掉一条边,将会使之变成非连通图。最小生成树(Minimum Spanning Tree,MST):或者称为...转载 2018-11-06 20:55:56 · 16060 阅读 · 1 评论 -
十进制转换二进制C++实现(非递归)
实现十进制转换为二进制非递归实现以下是C++源代码:#include<iostream> #include<stdio.h>using namespace std;//十进制 转换为 二进制------非递归 int DecToBin(int dec){ int result=0,temp=dec,j=1; while(temp) { resu...原创 2018-12-20 12:55:41 · 4233 阅读 · 1 评论 -
斐波那契数列(递归及非递归)C/C++实现
递归实现斐波那契数列以下是正确C++源代码:1.递归实现Fibonacci数列:#include<iostream> #include<stdio.h>using namespace std;//Fibonacci数列递归解法 C++ 实现int Fib(int n) { if(n==0) return 0; else if(...原创 2018-12-20 16:58:11 · 34649 阅读 · 2 评论 -
数据结构----直接选择排序C++代码
插入排序的基本思想是:每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。 直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。 算法步骤: 首先在当前有序区R[1..i-1]中查找R[i]的正确插入位置k(1≤k≤i-1);然后...原创 2018-12-20 21:10:43 · 586 阅读 · 0 评论 -
进制转换C语言实现(十进制转换为任意进制)
程序实现功能: 输入一个十进制数和R(表示要转换成R进制),输出转换后的数。 事例 例如:输入 10 2 输出 1010 源代码如下:#include<stdio.h>#include<string.h>//int n,num[15],r,count;int n,r,count;void print( int x ){ ...原创 2018-12-20 21:20:18 · 33282 阅读 · 13 评论 -
C/C++源代码实现对随机生成的数据进行排序(直接插入排序、折半插入排序)
代码实现功能如下:1.产生1E4个随机数并对随机数进行排序;2.计算排序所用时间;3.排序方法为直接插入排序和折半插入排序。源代码如下:#include<stdio.h> #include<stdlib.h>#include<time.h> //用到 time 函数 #include<iostream>using na...原创 2018-12-10 15:44:50 · 4288 阅读 · 3 评论 -
大数加法------C语言代码实现(含负数)
两个符号相同的数,直接相加即可,所得结果符号不变;两数符号不同时,需要对两数的绝对值进行比较,结果的符号同绝对值较大者,值为较大者减去较小者。 以下是正确C语言源代码: #include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int ma...原创 2018-12-21 11:19:45 · 2395 阅读 · 0 评论 -
数据结构------快速排序 C++ 代码
快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键...原创 2018-12-21 12:26:00 · 550 阅读 · 0 评论 -
数据结构C/C++语言 循环队列基本操作代码
实现循环队列的基本操作:#include<stdio.h>#include<stdlib.h>#include<iostream>using namespace std;#define MAXQSIZE 100#define OK 1#define ERROR 0#define OVERFLOW -1#define False 0#def...原创 2018-10-07 15:55:55 · 1555 阅读 · 2 评论