c语言
理工科的杜小甫
这个作者很懒,什么都没留下…
展开
-
快速排序(完整程序c语言实现)
键码序列(66,13,51,76,81,26,57,69,23)进行快速排序。 求第一趟划分后的结果。 关键码序列递增。 以第一个元素为划分基准。 【主要方法步骤】如下: 将两个指针i,j分别指向表的起始和最后的位置。 反复操作以下两步: (1)j逐渐减小,并逐次比较j指向的元素和目标元素的大小,若p(j)#include<stdio.h>#include<stdlib.h>void原创 2016-07-16 21:57:09 · 3092 阅读 · 0 评论 -
单链表的插入(完整版程序c语言实现,以字符串为数据)
这里的插入主要是针对有序表中插入一个数据,插入后仍然为一个有序表。接下来会给出在链表尾插入,和在链表投插入怎么做#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#define N 3typedef struct node{ char name[20]; struct node *原创 2016-06-21 14:23:39 · 6483 阅读 · 1 评论 -
替换空格(c语言完整版程序)
题目:请实现一个函数,把字符串中的每个空格替换为“20%”。例如输入“we are happy”,则输出“we20%are20%happy”;#include<stdio.h>#include<stdlib.h>#include<string.h>void replaceBlank(char string[],int len){ int oriLen = 0; //oriLen原创 2016-07-06 19:57:38 · 1881 阅读 · 0 评论 -
二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。#include<stdio.h>#include<stdlib.h>void Find(int *matrix,int rows,int columns,int number){ int row = 0; in原创 2016-07-06 19:01:17 · 323 阅读 · 0 评论 -
单链表的查找(完整程序 以字符串为数据)
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#define N 3typedef struct node{ char name[20]; struct node *next;}stud;stud *creat(int n){ stud *p,*h,*s;原创 2016-06-20 17:28:11 · 4930 阅读 · 0 评论 -
单链表的逆置(完整程序加思路分析)
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define N 3typedef struct node{ char name[20]; struct node *next;}stud;stud *creat(int n){ stud *p,*h,*s; int i; if((h=(s原创 2016-06-20 16:44:39 · 1971 阅读 · 2 评论 -
创建单链表(字符串型)并输出
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define N 3typedef struct node{ char name[20]; struct node *link;}stud;stud *creat(int n){ stud *p,*h,*s; int i; if((h=(s原创 2016-06-19 22:32:15 · 8851 阅读 · 0 评论 -
创建单链表
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define N 10typedef struct node{ char name[20]; struct node *link;}stud;stud *creat(int n){ stud *p,*h,*s; int i; if((h=(原创 2016-06-19 22:24:17 · 365 阅读 · 0 评论 -
typedef
1、基本概念typedef 为C语言中的关键字,作用是为一个数据类型定义一个新的数据类型,包括内部数据类型(如int,char等)和用户自定义类型(如struct等)。 编程中使用typedef的目的:一是给变量一个易记且意义明确的新名字,二是简化一些类型比较复杂的类型声明。 例如:typedef int INTEGER; typedef Number_count原创 2016-06-19 21:54:28 · 1395 阅读 · 0 评论 -
冒泡排序(c语言实现)
#include<stdio.h>#include<stdlib.h>void maopao(int arr[]){int length,i,j;int temp;length = sizeof(arr);for(i = 0;i<length;i++){ for(j = 0;j<length-i;j++) { if(arr[j]>arr[j + 1]) {原创 2016-06-19 20:25:59 · 558 阅读 · 0 评论 -
单链表插入(完整版程序 在表头和表尾插入算法)
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#define N 3typedef struct node{ char name[20]; struct node *next;}ListNode;ListNode *creat(int n){ ListNode *p原创 2016-06-21 15:36:16 · 3621 阅读 · 0 评论 -
素数的判断 (完整版程序)
#include<stdio.h>#include<math.h>void prime(int n){ int i = 2; while((n%i)!=0&&i*1.0<sqrt(n)) i++; if(i*1.0>sqrt(n)) { printf("%d是一个素数\n",n); } else pri原创 2016-06-21 16:14:51 · 4515 阅读 · 0 评论 -
线性表的基本操作
借助数组来描述顺序表。除了用数组来存储线性表的元素之外,顺序表还应该有表示线性表的长度属性,所以用结构类型来定义顺序表类型。#define OK 1#define ERROR -1#define MAX_SIZE 100typedef int Status ;typedef int ElemType ; typedef struct sqlist{ Ele原创 2016-06-21 16:42:13 · 542 阅读 · 0 评论 -
函数与指针
1、用函数指针调用函数指针变量可以指向一个函数。一个函数在编译时被分配给一个入口地址。这个函数入口地址就称为函数的指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。int max(int x,int y); //函数声明int(*p)(int,int); //定义指向函数的指针变量pp = max; //使p指向函数m原创 2016-07-19 18:52:04 · 529 阅读 · 0 评论 -
static说明
static 声明的变量在C语言中有两方面的特征: 1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。 Tips: A.若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;转载 2016-07-19 18:05:26 · 536 阅读 · 0 评论 -
将一个“1234”的字符串转化为1234整形
首先要介绍的就是字符’0’到‘9’转化为数字0~9就是字符去减‘0’得到的就是数字的值。 其区别就是在于ASCII值不同,计算机内部数值0的ASCII值是0,字符0的ASCII值是0x30(10进制是48)程序如下:#include<stdio.h>#include<stdlib.h>int func(char *s){ //int i = 0; int sum = 0; while(原创 2016-06-23 21:05:30 · 22342 阅读 · 0 评论 -
栈的链式存储表示
1 栈的链式表示 栈的链式存储结构称为链栈,是运算受限的单链表。其插入和删除操作只能在表头位置上进行。因此,链栈没有必要像单链表那样附加头结点,栈顶指针top就是链表的头指针。图3-4是栈的链式存储表示形式。链栈的结点类型说明如下:typedef struct Stack_Node{ ElemType data ;struct Stack_Node *next ;}原创 2016-06-23 17:34:16 · 729 阅读 · 0 评论 -
判断手机号码是否合法(完整实现程序)
问题描述:我国大陆运营商的手机号码标准格式为:国家码+手机号码,例如:8613912345678。特点如下:1、 长度13位;2、 以86的国家码打头;3、 手机号码的每一位都是数字。请实现手机号码合法性判断的函数要求:1) 如果手机号码合法,返回0;2) 如果手机号码长度不合法,返回13) 如果手机号码中包含非数字的字符,返回2;4) 如果手机号码不是以86打头的,返回3;【注】除成原创 2016-06-23 15:58:35 · 7641 阅读 · 0 评论 -
约瑟夫环(c语言程序完整版)
约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct Node{原创 2016-06-23 12:16:49 · 49654 阅读 · 5 评论 -
线性表(顺序表)的逆置(完整程序)
#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR -1#define MAX_SIZE 100typedef int Status;typedef int ElemType;typedef struct sqlist{ ElemType Elem_array[MAX_SIZE]; int length;原创 2016-06-22 15:31:40 · 13937 阅读 · 0 评论 -
什么是预编译?何时需要预编译?
什么是预编译:预编译又称为预处理 , 是做些代码文本的替换工作。 处理以# 开头的指令 , 比如拷贝 #include 包含的文件代码,#define 宏定义的替换 , 条件编译等,就是为编译做的预备工作的阶段。主要处理#开始的预编译指令,预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。C 编译系统在对程序进行通常的编译之前,首先进行预处理。 c 提供的预处理功转载 2016-07-07 11:19:27 · 19404 阅读 · 2 评论 -
不使用库函数,编写函数int strcmp(char *source, char *dest) 相等返回0,不等返回-1;
#include<stdio.h>int strcmp(char *source, char *dest){ int m,n,i,flag; m = strlen(source); n = strlen(dest); if(m!=n) flag = -1; if(source==NULL&&dest==NULL) { fl原创 2016-07-07 11:10:29 · 1869 阅读 · 0 评论 -
冒泡排序(c++实现)
#include<iostream>using namespace std;void maopao(int *arr){int length,i,j;int temp;length = sizeof(arr);cout<<length;for(i = 0;i<length-1;i++){ for(j = 0;j<length-i-1;j++) { if(arr[j]>原创 2016-06-19 21:09:13 · 365 阅读 · 0 评论 -
const和#define的不同以及 const修饰指针的几种情况
C++语言中可以用const定义常量,也可以用#define定义常量,但是前者比后者有更多的优点。 1、const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换中可能会产生意想不到的错误(边际效应)。 2、有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。在c++程序中只使用const常量原创 2016-06-18 15:46:30 · 605 阅读 · 0 评论 -
华为机试题:选秀节目打分
1、选秀节目打分,分为专家评委和大众评委, 2、score[] 数组里面存储每个评委打的分数, 3、judge_type[] 里存储与 score[] 数组对应的评委类别, 4、judge_type[i] == 1,表示专家评委, 5、judge_type[i] == 2,表示大众评委,n表示评委总数。 6、 打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分原创 2016-06-18 12:51:35 · 536 阅读 · 0 评论 -
求一个数组中满足2^N的个数
#include<stdio.h>#include<stdlib.h>#include<string.h>int func(int a[],int length){ int i; int count; count = 0; for(i = 0;i<length;i++) { if(0==(a[i]&(a[i] - 1)))原创 2016-06-24 20:47:49 · 399 阅读 · 0 评论 -
连续字符统计(如AABBBCDD, A2B3C1D2)
#include<stdio.h>#include<stdlib.h>#include<string.h>void func(char *p,int length){ //char *s; //p = s; //q = s;//s = (char*)malloc(length*sizeof(char*));//memcpy(s,p,length*sizeof(char*原创 2016-06-24 15:46:22 · 866 阅读 · 0 评论 -
求一个二维数组中每列的最小值
#include<stdio.h>#include<stdlib.h>void fun(int a[3][4],int row,int column){ int i,j,k; int m[4]; for(i = 0;i<column;i++) { m[i] = a[0][i]; //int temp = 0; for(j = 0;j<r原创 2016-06-24 12:14:01 · 9089 阅读 · 2 评论 -
华为2015机试题一
按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。 例如:输入2, 8, “abc” ,“123456789”,则输出为“abc00000”, “12345678“, ”90000000”#include <stdio.h>#include <string.h>#define MAXSIZE 100char ln[MAXSIZE];int原创 2016-06-07 21:10:48 · 393 阅读 · 0 评论 -
printf("%*.*s\n")
#include <stdio.h>#include <string.h>int main(){ const char the_text[] = "this is test text!"; // 在C 语言中输出等宽度的显示我们一般采用的是在前面加数字的方法, printf("%30s\n", the_text); // 右对齐输出,结果:"转载 2016-06-07 21:03:07 · 1359 阅读 · 0 评论 -
printf "%.*s"
小数点.后“*”表示输出位数,具体的数据来自参数表 printf格式字符串中,与宽度控制和精度控制有关的常量都可以换成变量,方法就是使用一个“”代替那个常量,然后在后面提供变量给“”。同样,小数点.前也可以添加*,也要用户输入一个位宽值来代替,表示输出的字符所占位宽。#include <cstdio>#include <iostream>int main(){ char *s原创 2016-06-07 21:01:56 · 365 阅读 · 0 评论 -
一维动态数组的实现(c语言)
编程输入一个班的某课程的学生成绩,计算其平均分,然后输出。班级人数由键盘输入。#include <stdio.h>#include <stdlib.h>main(){ int *p = NULL,i,n,sum; printf("Please enter array numbers: "); scanf("%d",&n); p = (int*)malloc(size原创 2016-06-07 16:15:19 · 12909 阅读 · 0 评论 -
malloc和calloc
void *malloc(unsigned int num_bytes);功能:分配长度为num_bytes字节的内存块malloc()malloc()函数用来分配内存:将总共需要的字节数作为参数传递给该函数,返回值是指向最新分配的内存的指针,而如果内存没有分配好,则返回值是NULL。 malloc()的使用技术:some_type *pointer;pointer = malloc(count原创 2016-06-07 16:00:46 · 406 阅读 · 0 评论 -
在一个已排序的数组中插入数据(c语言)
在一个已排序(从小到大)的数组中查找待插入数据x应该插入的位置,使其插入后,数组元素仍保持从小到大的顺序#include <stdio.h>#include <stdlib.h>void Insert(int a[],int n,int x);main(){ int *a,x,i,n,m; printf("Please enter array numbers: "); s原创 2016-06-07 15:41:22 · 11238 阅读 · 0 评论 -
静态链接库和动态链接库
首先,先搞明白它们分别是啥子玩意 先来看静态链接库吧,说白了,静态链接库就是你使用的.lib文件,库中得代码最后需要连接到你的可执行文件中去,所以静态连接的可执行文件一般比较大一些。DLL的全称是Dynamic Link Library, 中文叫做“动态链接库“dll只是一组源代码的模块,每个模块包含一些可供应用程序或者其他dll调用的函数。静态连接库就是把(lib)文件中用到的函数代码直接链接进原创 2016-06-11 21:10:32 · 271 阅读 · 0 评论 -
malloc/free与 new/delete 内存的分配方式 多态类中的虚函数表 全局变量和局部变量
有了 malloc/free 为什么还要 new/delete?malloc 与 free 是 C++/C 语言的标准库函数,new/delete 是 C++的运算符。它们都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用 maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运原创 2016-06-12 19:45:15 · 658 阅读 · 0 评论 -
Heap与stack const关键字的作用。
Heap与stack的差别 Heap是堆,stack是栈。Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。Stack空间有限,Heap是很大的自由存储区C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行const关键字?有哪些作用 con原创 2016-06-12 20:10:06 · 908 阅读 · 0 评论 -
memset,memcpy,strcpy的区别
一.函数原型 strcpy extern char *strcpy(char *dest,char *src);功能:把src所指由NULL结束的字符串复制到dest所指的数组中 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针memcpy extern void *memcpy(void *dest,void *sr原创 2016-06-17 20:10:09 · 315 阅读 · 0 评论 -
回文判断
把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环叫做回文,也叫回环。例如 adfgfda#include<stdio.h>#include<string.h>void func(char *p){ char *tmp; tmp = p; while(*p) { p++; } while(*tmp) {原创 2016-06-15 22:11:53 · 370 阅读 · 0 评论 -
将字符串中的所有字母都替换成该字母的下一个字母
题目很简单,但是有很多细节,我第一次编的时候只考虑到当字符串中的某个字符为‘z’或’Z’时,要将其转化为’a’或‘A’; 第一次的程序如下,编译运行通过#include<stdio.h>#include<string.h>void func(char *p){ while(*p!=NULL) { if(*p=='z'| *p=='Z') {原创 2016-06-15 21:50:05 · 11047 阅读 · 0 评论