c语言入门编程
st 5
这个作者很懒,什么都没留下…
展开
-
统计一个整数数字位数,逆序、正序输出
“#List item1、给一个不多余5位的正整数,要求”“##//(1)、求出他是几位数”“###//(2)、分别输入每一位数字”“####//(3)、按逆序输出各位数字,例如原数是321,应输出123”“#####//(4)、顺序输出”#include<stdio.h>int Count(int n)//定义一个累加器{if(n ==0){return 1;}...原创 2018-10-16 17:47:36 · 739 阅读 · 0 评论 -
C语言版本---冒泡排序
#include <stdio.h>//排序//稳定性:针对关键字相同的数据,在排序前A在A’的前面,排序后依然如此,则稳定,否则不稳定//出现跳跃的交换数据则不稳定//插入排序的最大特点:越有序越快,完全有序则为O(n)void BubbleSort(int *arr,int len)//O(n^2),O(1),稳定,冒泡排序{int tmp;for(int i=1;...原创 2018-12-03 16:41:14 · 126 阅读 · 0 评论 -
Shell排序,又叫希尔排序
#include <stdio.h>//排序//稳定性:针对关键字相同的数据,在排序前A在A’的前面,排序后依然如此,则稳定,否则不稳定//出现跳跃的交换数据则不稳定//插入排序的最大特点:越有序越快,完全有序则为O(n)//一趟shell过程void Shell(int *arr,int len,int gap){int tmp;int i;int j;for(...原创 2018-12-03 16:28:17 · 240 阅读 · 0 评论 -
C语言版本---插入排序
#include <stdio.h>//排序//稳定性:针对关键字相同的数据,在排序前A在A’的前面,排序后依然如此,则稳定,否则不稳定//出现跳跃的交换数据则不稳定//插入排序的最大特点:越有序越快,完全有序则为O(n)void InsertSort1(int *arr,int len)//O(n^2),O(1),稳定{//错误的算法int tmp;int i;in...原创 2018-12-03 16:21:08 · 109 阅读 · 0 评论 -
约瑟夫环问题,从1到3报数,报3的退出游戏,得出最后获胜人的编号(从0开始)
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <assert.h>#include <ctype.h>//约瑟夫环int JosephProblem(int n){int *arr = (int )malloc(nsizeof(int));...原创 2018-11-19 23:13:16 · 777 阅读 · 1 评论 -
将长度为n的数组arr中的最后m个数据移到最前面
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <assert.h>#include <ctype.h>//将长度为n的数组arr中的最后m个数据移到最前面void Move(int *arr,int n,int m){if(arr==NUL...原创 2018-11-19 23:08:35 · 509 阅读 · 0 评论 -
C=AUB a文件中的字母和b文档中的字母一起写在c文档中(且a和b中的字母有序)
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <assert.h>#include <ctype.h>//C=AUBvoid MergeFile(const char *pathA,const char *pathB,const char *p...原创 2018-11-19 22:54:14 · 270 阅读 · 1 评论 -
将字符串中的小写字母转成大写字母
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <assert.h>#include <ctype.h>//将字符串中的小写字母转成大写字母void Save(char *path,char *str){FILE *fw = fopen(pa...原创 2018-11-19 22:40:51 · 2826 阅读 · 0 评论 -
八阶魔方阵
#include<stdio.h>//左上到右下对角线满足i%4j%4//右上到左下对角线满足(i+j)%43void MagicSquare(){#define row 8//只要是偶数阶级都可以,只需把数字8,改成其他偶数就可以了#define col rowint arr[row][col];int tmp1=1;int tmp2=row*col;for(in...原创 2018-11-22 11:44:37 · 466 阅读 · 0 评论 -
文件拷贝
#include <stdio.h>#include <stdlib.h>#include <assert.h>#include <string.h>//将srcpath文件拷贝到despathvoid FileCopy(char *despath,char *srcpath){FILE *fr = fopen(srcpath,“rb”...原创 2018-11-11 14:10:05 · 120 阅读 · 0 评论 -
数组越界问题和指针初入门例子分析
主要内容:数组越界问题和指针初入门例子分析一、 数组越界问题例子思考int main(){int i;int arr[10];for(i=0;i<=10;i++){arr[i] = 0;printf("%d\n",i);}return 0;}1234567891011问题:当运行上述代码时,会出现什么问题?为什么会这样?为解决以上问题,我们...转载 2018-11-05 22:52:07 · 296 阅读 · 0 评论 -
字符串的倒序 字符串转数字 数字转字符串 获取最长的单词
#include <stdio.h>#include <ctype.h>#include <stdlib.h>#include <string.h>字符串的倒序“abcd”->“dcba”void Reverse_str(char *str){char *p;for(p=str;*p!=’\0’;p++) ;char tmp;...原创 2018-11-05 22:25:31 · 180 阅读 · 0 评论 -
递归
#include <stdio.h>最适合递归和最不适合递归的例子//时间复杂度:执行一个算法,代码运行的次数和问题规模之间的函数关系,用O()//O(1):常数项,和问题规模无关//windows 栈空间1M//空间复杂度:执行一个算法,需要额外的辅助空间和问题规模之间的函数关系,用O()/*int main(){char arr[1024*900];printf...原创 2018-11-02 21:28:13 · 133 阅读 · 0 评论 -
二维数组
#include <stdio.h>#include <string.h>#include <assert.h>#include <ctype.h>//二维数组// 二维数组定义及其初始化//定义:二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,一般形式为类型说明符 类型说明符 数组名 [常量表达式][常量表达式]。int ...原创 2018-11-02 21:23:46 · 258 阅读 · 0 评论 -
字符串的计算
//字处理,多媒体//’\0’,‘0’,0,“0”//0 48 9 字符串//字符串:利用“”包括起来的一系列字符。字符串的末尾有个’\0’,//’\0’是字符串结尾标记,如果没有’\0’则不是字符串//assert(表达式):断言,如果表达式为真则什么都不做,为假则程序崩溃,并报告原因和位置/*void Fun(int *p){p = NULL;}int main(...原创 2018-11-01 22:35:23 · 414 阅读 · 0 评论 -
const的用法
#include <stdio.h>#include <assert.h>#include <string.h>//读,写//const 定义常变量,变量只读,不能写//1、基本数量类型对于const是透明的 const int ca = 10;等同int const ca = 10;//2、const 直接修饰的(它的直接右边)内容不能做左值(...原创 2018-11-01 22:31:52 · 194 阅读 · 0 评论 -
指针在实际使用中的常见错误分析
#include <stdio.h>void Fun2(double *p1,double *p2,float *p3){*p1 = 23.4;*p2 = 45.6;*p3 = 12.5f;}int main(){double a;double b;float c;Fun2(&a,&b,&c);return 0;}*//*//...原创 2018-10-25 19:20:23 · 277 阅读 · 0 评论 -
进制转换问题
主要内容:进制转换问题一、 例子分析1.若在某系统中,等式15*4=112成立,则该系统是几进制。A.6 B.8 C.7 D.10首先,这种进制转换问题我们先看他的数字大小怎么样,就好比上面这个题数字非常小,我们可以试选项,分别把这个等式的数字化成六进制、八进制、七进制和十进制,再分别计算左试等于右试就可以了。 但是,如果我们的数字大了怎么办,如下试例 2.若在某系统...原创 2018-10-25 19:05:13 · 948 阅读 · 0 评论 -
有一个集合由A-Z这26个字母组成,打印这个集合的所有子集,每个子集一行,写C代码实现,不能使用递归
//1、//str为A~Z的字母集合,n为需要处理的前n个字符集合,本题n为26,n是为了方便测试#include<stdio.h>void SubSet(int n){const char *str = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”;int maxnum = 1<<n; //2^nfor(int i=0;i<...原创 2019-01-20 19:55:53 · 446 阅读 · 0 评论