C语言
文章平均质量分 74
qq_45975614
这个作者很懒,什么都没留下…
展开
-
8位bmp文件获取像素
C语言读取8位bmp文件的像素点原创 2022-08-30 13:22:03 · 1029 阅读 · 2 评论 -
C语言写顺序表
1. 顺序表的结构(1) 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储,在数组上完成数据的增删查改。2. 顺序表的特点(1)空间连续。(2)支持随机访问。(3)尾插尾删操作时间复杂度都是O(1)。(4)其他位置(除过尾部)插入删除都是0(n)。(5)空间利用率高,不容易造成内存碎片。(6)适合访问存储。(7)增容代价大,增容一般是呈2倍增长,势必会有一定的空间浪费。(8)增容需要申请新空间,拷贝数据,释放旧空间,会有不小的消耗。3.顺序表的实现原创 2020-12-28 21:40:15 · 289 阅读 · 0 评论 -
模拟实现字符串函数strlen,strcpy,strcat,strcmp
&一.求字符串长度(strlen)&二.长度不受限制的字符串函数(strcpy,strcat,strcmp)&三.长度受限制的字符串函数介绍(strncpy,strncat,strncmp)&四.字符串查找(strstr,strtok)1.求字符串长度(strlen)(string length)(字符串通常放在常量字符串中或者字符数组中,字符串常量适用于那些对它不做修改的字符串函数)size_t strlen ( const char * str );1)字符原创 2020-12-05 16:19:57 · 322 阅读 · 0 评论 -
C语言:strlen模拟实现->求字符串长度
模拟实现strlen,求字符串长度(方法一)识别字符串中的每个字符,如果不是’\0’,计数器count++,直到找到’\0’为止,返回计数器coun的值#include<stdio.h>#include<assert.h>size_t my_strlen(const char* str){ assert(str != NULL);//断言str不是空指针 int count = 0;//计数器 while (*str != '\0') { count++;//每原创 2020-12-02 19:50:26 · 356 阅读 · 0 评论 -
模拟实现快速排序
快速排序(qsort)可以排任意类型的数据例题#include<stdio.h>#include<stdlib.h>#include<string.h>struct Stu{ char name[20]; int age;};int int_cmp(const void* elem1, const void* elem2)//整型比较{ return *(int*)elem1 - *(int*)elem2;//void类型无法直接解引用,先强制原创 2020-11-26 22:29:21 · 252 阅读 · 0 评论 -
函数指针
1.函数指针(1)函数指针就是指向函数的指针,函数名就是函数的地址,&函数名还是函数的地址,先看看下面一段代码你就明白了。函数指针类型如 int (*p)()//函数指针//函数指针是指向函数的指针,函数名是函数的地址,&函数名还是函数的地址。#include<stdio.h>void test(){ printf("hehe\n");}int main(){ printf("%p\n", test);//函数名是函数的地址 printf("%p\n原创 2020-11-25 22:01:03 · 99 阅读 · 0 评论 -
猜名次推理题
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果:A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。#include<stdio.h>int main(){ int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; for (a = 1; a <= 5; a++)原创 2020-11-24 12:03:04 · 367 阅读 · 0 评论 -
找凶手
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词:A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。#include<stdio.h>int main(){ int killer = 'A'; //假设第一个人士凶手,判断每个人说的话,然后在判断第二个人,直到找到符合的 for (killer = 'A'; killer <= '原创 2020-11-23 23:48:08 · 128 阅读 · 0 评论 -
C语言打印杨辉三角
//打印杨辉三角#include<stdio.h>int main(){ int arr[10][10] = { 0 }; int i = 0; int j = 0; //对角线元素置1,第一列置1 for (i = 0; i < 10; i++) { arr[i][0] = 1 ; arr[i][i] = 1 ; } //第三行第二列元素等于第二行第二列元素+第二行第一列元素,之后部分值也这么求 for (i = 2; i < 10; i++)原创 2020-11-23 23:46:19 · 151 阅读 · 0 评论 -
C语言求两数最小公倍数
方法一:输入两个值让a为较小值,让i从a到1计算,当a%i与b%i同时为0时,则i为最大公约数#include<stdio.h>int main(){ int a = 0; int b = 0; int temp = 0; scanf("%d %d", &a, &b); if (a > b) { temp = a; a = b; b = temp; } int i = 0; for(i = a; i >1; i--) {原创 2020-11-22 21:45:22 · 736 阅读 · 0 评论 -
C语言求两数最小公倍数
求最小公倍数方法一:给两个数A,B,让A和i相乘(i从1到B),每一次去模B,如果不等于0,然后i+1,直到等于0就找到了#include<stdio.h>int main(){ int a = 0; int b = 0; int i = 1; scanf("%d %d", &a, &b); while (((a * i) % b )!= 0) //等于0就退出循环,就找到了 { i++; } printf("%d\n", (a * i)); ret原创 2020-11-22 21:40:48 · 6417 阅读 · 0 评论 -
结构体内存对齐与修改默认对齐数
结构体内存对齐规则:1.第一个成员的偏移量从结构体0偏移处开始。2.其他成员变量要对齐到自身对齐数的整数倍的地址处。对齐数=编译器默认对齐数与该成员大小的较小值。vs默认对齐数为83.结构体大小为最大对齐数的整数倍。4.嵌套结构体的大小为:嵌套的结构体对齐到自己最大对齐数的整数倍,结构体的大小就是所有对齐数(包含嵌套中的对齐数)的整数倍。//下面两个结构体, 在#pragmapack(4)和#pragmapack(8)的情况下,结构体的大小分别#pragma pack(4) //默认对齐数修原创 2020-11-21 16:07:39 · 537 阅读 · 0 评论 -
无符号类型越界成为负数
//unsigned char 类型越界成为负数的计算//请问该程序输出是多少?#include <stdio.h>int main(){ unsigned char i = 7; int j = 0; for (; i > 0; i -= 3) { ++j; } printf("%d\n", j); //173 return 0;}由于i-=3会将i置成负数,不过i为unsigned类型的,并没原创 2020-11-21 15:41:26 · 513 阅读 · 0 评论 -
数据在内存中的存储
深度剖析数据在内存中的存储本章重点&1. 数据类型详细介绍&2. 整形在内存中的存储:原码、反码、补码&3. 大小端字节序介绍及判断&5. 数据类型例题&4. 浮点型在内存中的存储解析1、数据类型介绍(1)整型(整型在内存中的存储:一个变量的创建是要在内存中开辟空间的,空间的大小是根据不同的类型而决定的)char(signed char、unsigned char) 字符数据类型short(signed short、unsigned sh原创 2020-11-19 19:28:39 · 163 阅读 · 0 评论 -
程序环境和预处理
本章重点:&1、程序的翻译环境&2、程序的执行环境&3、详解:C语言程序的编译+链接&4、预定义符号介绍&5、预处理指令 #define&6、宏和函数的对比&7、预处理操作符#和##的介绍&8、命令定义&9、预处理指令 #include&10、预处理指令 #undef&11、条件编译1、2、程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境:翻译环境和执行环境。1、组原创 2020-11-18 20:48:17 · 137 阅读 · 0 评论 -
指针改造通讯录
利用指针改造完成通讯录//利用指针改造通讯录#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h>#include<assert.h>#define DEFAULT_SZ 3#define INC 2//联系人个属性的大小#define MAX_NAME 20 //性别#define MAX_TELE 12 //电原创 2020-11-17 23:02:45 · 322 阅读 · 0 评论 -
C语言通讯录
通讯录:不使用指针,创建结构体类型描述联系人的属性,可以增删查改//通讯录1,利用结构体创建,非指针#define _CRT_SECURE_NO_WARNINGS 1//类型声明+函数声明#include<stdio.h>#include<string.h>//1000位联系人#define MAX 1000//联系人个属性的大小#define MAX_NAME 20 //性别#define MAX_TELE 12 //电话#define MAX_A原创 2020-11-16 15:14:31 · 211 阅读 · 0 评论 -
C语言文件操作
C语言文件操作&1.什么是文件&2.文件名&3.文件类型&4.文件缓冲区&5.文件指针&6.文件的打开和关闭&7.文件的顺序读写&8.文件的随机读写&9.文件结束的判定一、什么是文件磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件,数据文件。1.程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。2.数据文原创 2020-11-15 23:15:24 · 232 阅读 · 0 评论 -
初识C语言
本章重点一、什么是C语言?二、第一个C语言程序三、数据类型四、变量、常量五、字符串+转义字符1.什么是C语言?C语言是一门面向过程的计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。2.第一个C语言程序#include<stdio.h>#include<...原创 2020-03-26 10:59:59 · 89 阅读 · 0 评论