
C语言笔记
文章平均质量分 76
。
lusonnet
鲜衣怒马少年时
展开
-
【C语言】实现求最小生成树的Kruskal算法
题目描述思想代码实现题目描述已知有权无向图G,利用克鲁斯卡尔算法求出该图的最小生成树。输入格式:第一行输入两个正整数n和m(空格间隔), 分别表示图G的顶点总数和边的总数。 第二行连续输入n个字母,分别表示n个顶点的信息。第三行连续输入m条边的信息,每条边的输入格式为(v1,v2,w),表示一条关联顶点v1和v2的边,其权值为w。输出格式:按边上权值由小到大的顺序依次输出各个边。输出边的时,若该边被选中,则在该边信息之后输出1,否则输出0。例如: (v1,v2,w,1) 表示与顶点.原创 2021-11-18 20:51:21 · 2117 阅读 · 0 评论 -
关于scanf的多种应用场景与相关知识
经过本次期中考试,我深刻认识到我对输入的各种方法不太熟悉,所以我写下这篇总结,巩固一下自己的知识。顺便记录下我学习中遇到的输入方法。1. 输入格式:输入在一行中给出若干字符,最后一个回车表示输入结束,不算在内。while ((c=getchar())!='\n'){}意思为:一直循环,直到输入回车为止,结束循环,只要用户输入的不是回车,while循环就会一直执行。调用getchar时,用户输入的字符被存放在键盘缓冲区中。当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符原创 2021-05-15 18:07:59 · 1139 阅读 · 1 评论 -
结构体内存对齐
计算结构体大小时,存在内存对齐的情况。原创 2021-06-14 12:32:33 · 106 阅读 · 0 评论 -
利用三步翻转法解决字符串左旋问题
在我们平时写题的时候,经常会遇到移动字符串的要求。今天,我们就来学习一种解题思想 - 三步翻转法 一、倒置字符串三步翻转法整体翻转单独翻转二、字符串左旋常规写法三步翻转法三、判断是否为旋转字符串三步翻转法巧用函数法一、倒置字符串将一句话的单词进行倒置,标点不倒置。比如 I like beijing。经过倒置后变为:beijing. like I三步翻转法整体翻转单独翻转#include<stdio.h>void reverse(char* left, char* right原创 2021-06-07 20:25:18 · 442 阅读 · 4 评论 -
qsort函数用法 - 快速排序
整型字符型double型结构体排序qsort函数:执行快速排序。运用到回调函数整型#include<stdio.h>//整型int cmp(const void* e1, const void* e2){ return *(int*)e1 - *(int*)e2;//顺序 //return *(int*)e1 - *(int*)e2;//逆序 }int main(){ int a[6] = { 1,3,8,4,6,2 }; int sz = sizeof(a).原创 2021-06-05 21:56:56 · 272 阅读 · 0 评论 -
指针和数组在strlen和sizeof中的大小计算看这一篇就够了
在 操作符详解中,我们介绍到了sizeof操作符的作用,下面通过一些习题来进一步区分sizeof和strlen。原创 2021-06-04 22:42:39 · 2703 阅读 · 2 评论 -
指针详解一:指针数组、数组指针、函数指针及其传参
char* ps = "hello world"; //1.char arr[] = "hello world"; //2.char* ps本质上是把这串字符的首字符的地址放在ps中,因此,它与字符串在数组的存储是有差异的。指针和数组并不是相等的。在内存中表示:下面通过一段代码来进一步加深认识:#include<stdio.h>int main(){ char str1[] = "hello"; char str2[] = "hello"; char* str3 = ".原创 2021-06-02 21:59:04 · 710 阅读 · 0 评论 -
【C语言修炼手册】(六)指针和结构体
指针大小在32位平台上是4个字节,在64位平台上是8个字节既然指针大小无论类型都是一样的,那么为什么不存在一个通用类型指针呢?指针类型存在的意义 int a = 0x11223344; int* pa = &a; *pa = 0;运行后: int a = 0x11223344; char* pa = &a; *pa = 0;运行后:可见,指针类型决定了解引用时权限的大小int main(){ int arr[10] = { 0 }; int* p =原创 2021-05-23 15:16:02 · 154 阅读 · 0 评论 -
浮点类型(float、double)、char类型在内存中存储方式
浮点类型(float、double)、char类型在内存中存储方式原创 2021-05-26 22:05:05 · 1409 阅读 · 0 评论 -
你必须知道的关于操作符的那些事
经过了五一假期的放松,我们重新投入到编程学习大军中,Lets’ go!操作符详解算术操作符移位操作符位操作符用途练习赋值操作符单目操作符分类:算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号操作符算术操作符+ - * / %当我们进行除法操作时int a = 9 / 2; //4得到的是商,不会得到4.5这是为什么呢?这是因为/旁边都是整数,执行的是整数除法,即使我们把它改成float a = 9 / 2也没有改变它的本质---原创 2021-05-17 21:32:43 · 159 阅读 · 0 评论 -
【C语言基础题】求水仙花数
求出0~100000之间的所有“水仙花数”并输出。#include<stdio.h>#include<math.h>int main(){ for (int i = 0; i <100000; i++) { int count = 1; int n = i; while (n > 9)//求位数 { count++; n /= 10; } int sum = 0; int m = i; while (m)//求和.原创 2021-05-10 20:25:08 · 177 阅读 · 0 评论 -
【C语言基础题】经典之汉诺塔
汉诺塔介绍汉诺塔介绍汉诺塔(Tower of Hanoi),源于印度古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。...原创 2021-04-21 20:48:15 · 229 阅读 · 0 评论 -
【C语言修炼手册】(五)数组
数组一维数组的创建和初始化数组的创建一维数组的创建和初始化当有非常多个数据时,我们不能为每一个数据定义一个变量。这时,我们就想能不能有一种方法-----创建一个空间,能够存放多个数据。这种方法就是使用数组一组相同类型数据的集合称为数组数组又分为很多种,有一维数组,二维数组,三维数组,多维数组等等。我们用到最多的就是一维数组和二维数组。数组的创建...原创 2021-04-25 22:05:29 · 557 阅读 · 0 评论 -
【C语言修炼手册】(四)函数套娃 - 递归
函数递归什么是递归递归的两个必要条件什么是递归函数直接或间接调用自己递归的一种重要思考方式:大事化小通过下面这道题来了解递归的实现:接受一个整型值(无符号),按照顺序打印它的每一位。例:输入:1234,输出1 2 3 4void print(unsigned int n){ if (n > 9) { print(n / 10); } printf("%d ", n % 10);}int main(){ unsigned int num = 0; scanf("%原创 2021-04-19 22:26:19 · 679 阅读 · 0 评论 -
【C语言修炼手册】(三)函数及其相关知识
函数c语言中函数分类库函数自定义函数函数的组成函数的参数函数的调用考考你函数的嵌套调用和链式访问函数的声明和定义函数c语言中函数分类库函数自定义函数库函数将被频繁使用的功能定义出来,让C语言更加标准所有函数都寄存在头文件里,所以使用库函数时要引用头文件常见库函数有:IO函数 (putchar scanf getchar…)字符串操作函数 (strcmp strlen…)字符操作函数 (toupper…))内存操作函数 (memcpy .原创 2021-04-18 19:21:55 · 133 阅读 · 0 评论 -
【C语言修炼手册】(二)分支语句和循环语句
笔试题循环循环多少次?#include<stdio.h>int main(){ int i = 0; int k = 0; for (i = 0,k=0; k = 0; i++, k++) k++; return 0;}for循环里判断语句为赋值,将0赋给k,语句为假,循环不进去,所以循环0次。改为k==0可以循环一次do while() 循环do语句的语法:do 循环语句while(表达式);不管三七二十一,先进去执行一次。do whi原创 2021-04-15 20:19:28 · 517 阅读 · 0 评论 -
【C语言修炼手册】(一)入门基础知识
????C语言tips全局变量:定义在代码块({})之外的变量局部变量:定义在代码块({})内部的变量当局部变量和全局变量的名字相同的时候,局部变量优先。局部变量和全局变量的名字尽量不要相同输入函数scanf,切记要使用取地址符&C语言语法规定,变量要定义在当前代码块的最前面数据类型char //字符数据类型short &原创 2021-03-14 23:17:28 · 870 阅读 · 0 评论