C语言合集
初学C语言时的笔记,全部合在一起。
小黎的培培笔录
培培的成长之旅。
展开
-
预处理命令总合集。最实用的从代码中解析,超容易理解,这样你还看不懂?
首先看下列表格预处理归纳:指令 描述 #include 它是C语言中的头文件命令,用于指定头文件嵌入源文件中。 #define 宏定义。 #undef 宏定义的终止符,用于取消已定义的宏。 #ifdef 如果宏已定义则返回真。 #ifndf 如果宏没有定义则返回真。 #if 如果条件语句成立,则编译运行下面的代码。 #else 与#if一起使用,如果#if条件不成立,则执行下面的代码。 #elif 与#if一起使用,如原创 2022-01-18 16:09:50 · 3816 阅读 · 12 评论 -
宏#define的三种基本定义方式:固定值,表达式,运算符。
#define:define是C语言中的预处理命令,预处理命令以“#”开头,比如我们经常写的代码#include<stdio.h>也是预处理命令。#define用于宏定义,作用是方便程序段的定义和修改,可以将一个变量强制定义为你想要的值,它能提高源代码的可读性,为编程提供方便。宏定义又分为无参宏定义(不带参数)和带参宏定义(带有参数)。预处理是什么?预处理就是指计算机在进行编译运行之前做的工作。当对一个源文件进行编译时,系统将自...原创 2022-01-17 17:17:38 · 15672 阅读 · 7 评论 -
static和auto的用法,文字太枯燥,还是代码解释比较好,你觉得呢?
static的第一种用法:定义为静态变量何为静态变量?存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。就是只进行一次初始化。不理解?看代码!代码见真知:#include<stdio.h>int main(){ void fun(); //定义一个空函数 for(int i=0;i<3;i++) { fun(); //调用函数 } return 0;} void fun() { int i=0; sta原创 2022-01-16 20:33:34 · 326 阅读 · 7 评论 -
#include<string.h>中基础的函数你知道吗?赶紧来看看吧。
不懂看看就知道了,超容易理解。原创 2022-01-07 16:53:45 · 3637 阅读 · 8 评论 -
函数-memcpy有三种用法,第一种简单,另外两种非常巧妙,你知道吗?
快来看看吧!会有意想不到收获。原创 2022-01-10 15:39:04 · 18961 阅读 · 11 评论 -
每日积累,补充类似的作用的函数啦,前两个简单看看,最后一个可以记忆一下。
补充一:函数-memcmp()描述:把两个内存区域的前n个字节进行比较。简单来说就是比较,与strncmp作用一样。格式:memcmp(aim,str,n)参数:原创 2022-01-11 15:55:26 · 453 阅读 · 9 评论 -
(C语言代码分享):车辆信息管理系统源代码来了。
#include<stdio.h>#include<stdlib.h>#include<string.h>struct vehicle{ int num; char tpy[20]; char ppai[30]; char chepai[20]; char gongsi[30]; struct vehicle *next;};int n;struct vehicle *w;int main(){ struct vehicle *start.原创 2022-03-21 06:00:00 · 3868 阅读 · 8 评论 -
C语言:分享一下自己写的简单的学生管理系统。
#include<stdio.h>#include<stdlib.h>#include<string.h>struct student{ int num; char name[20]; char sex[10]; int year; float score; struct student* next;};int n;struct student* h;int main(){ void log();//登录函数 void record(..原创 2022-02-27 19:35:13 · 656 阅读 · 7 评论 -
C语言:单链表的查询操作,查询链表的某一结点。
老规矩,先看看结果是不是你想要的:代码分析:注:由于输入与输出函数与单链表的删除与插入相同,所以这里不在一一解释!第一步:声明#include<stdio.h>#include<stdlib.h>struct student //声明结构体类型{ int num; float score; struct student *next;};int n; //全局变量struct student *h;//此处不同,这里...原创 2022-02-25 20:51:54 · 2881 阅读 · 8 评论 -
C语言:单链表的循环添加、插入操作,直到不在插入为止
目录老规矩,先看结果:代码分析:第一步:声明第二步:输入函数第三步:添加函数第四步:输出函数第五步:主函数完整的代码:老规矩,先看结果:代码分析:第一步:声明#include<stdio.h>#include<stdlib.h>struct student //声明结构体类型{ int num; float score; struct student *next;};int n; //全局...原创 2022-02-24 16:59:11 · 2434 阅读 · 9 评论 -
(第24列)C语言题型:九九乘法表。
首先看结果:代码:#include<stdio.h>int main(){ int i,j; for(i=1;i<10;i++) //外循环 { for(j=1;j<=i;j++) //内循环 { printf("%d*%d=%-3d",i,j,i*j); } printf("\n"); //每进行一次完整的内循环就换行 } return 0;}...原创 2022-02-18 17:03:34 · 477 阅读 · 5 评论 -
(第23列)C语言典型题:求两个数的最小公倍数和最大公约数。(两种解法)
结果如下:第一种:#include<stdio.h>int main(){ int min(int a,int b); //函数找最小 int max(int c,int d); //函数找最大 int x,y,i,j=0,sum,num,v; printf("请输入两个数:"); scanf("%d %d",&x,&y); for(i=2;i<=min(x,y);i++) { if(x%i==0&.原创 2022-02-14 10:00:00 · 402 阅读 · 5 评论 -
(第22列)C语言典型列题:删除字符串中指定的字母。
结果如下:代码分析:#include<stdio.h>int main(){ char x,f; printf("请输入你要删除的字母:"); scanf("%c",&x); getchar(); //前面输入过后有回车,需要用getchar去掉。 printf("请输入字符串:"); while((f=getchar())!='\n') //利用getchar进行循环输入 { if(f==x) //如果出现要删除的字母 .原创 2022-02-13 10:00:00 · 2555 阅读 · 6 评论 -
(第21列)C语言典型题:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
先看结果:直接代码解析:#include<stdio.h>int main(){ float i=1,h=100,sum=0,num; while(i<11) { sum+=(h/2+h); //sum表示总长度,原高度加高度的一半 h/=2; //每次下落后高度减半 if(i==10) { num=h; //记录第十次的高度 } i++; //累加 } printf("\n总路程:%f,\n\原创 2022-02-12 06:00:00 · 10422 阅读 · 6 评论 -
(第20列)C语言典型列题:分解一个不多于五位的数字,分别打印各位数并且判断是几位数。
先看结果:代码解析!解析:#include<stdio.h>int main(){ int count,a,b,c,d,e,n; printf("请输入数字:"); scanf("%d",&count); //输入 a=count/10000; //如果是五位数,将万位上的数赋值给a,如果不是则为0 b=count/1000%10; //如果是四位数,将千位上的数赋值给b,如果是五位数,则b是十位.原创 2022-02-11 16:54:33 · 1375 阅读 · 5 评论 -
(第19列)C语言:单链表删除操作,循环删除,直到不想再删除为止。
先看结果,是不是你们想要的:我们还是一步一步的来:(完整代码在最后!)第一步:1、预处理命令:#include<stdio.h>#include<stdlib.h>#define LEN sizeof(struct student)2、结构体类型:struct student { int num; float score; struct student *next;};3、声明: struct stud原创 2022-02-09 20:44:04 · 1995 阅读 · 7 评论 -
(第18列)C语言题型:删除数组中重复出现的数据
题目:删除数组中重复出现的数据键盘输入一个长度为10的int型数组,删除数组中重复出现的数据如,原数组是: 1 4 2 3 4 1 2 5 5 9,输出:1 4 2 3 5 9运行结果:代码解析:第一步:声明、定义#include<stdio.h>int main(){ int A[10],i,j; return 0; } 第二步:输入#include<stdio.h>int main(){ i..原创 2022-02-07 19:44:21 · 7848 阅读 · 17 评论 -
(第17列)C语言:键盘输入长度为10的数组,统计其中有多少不相同的数据
键盘输入长度为10的数组,统计其中有多少不相同的数据原创 2022-01-27 17:50:52 · 5503 阅读 · 11 评论 -
(第16列)C语言:计算输入的一行字符串中有多少个单词。顺便补充“gets函数”的用法。
输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。原创 2022-01-26 17:41:45 · 2806 阅读 · 11 评论 -
(第15列)C语言:输入三个数,进行排序。思路简单,代码还挺长的--------两种方法。
题目:键盘输入三个数,进行大小排序。直接入正题,不说废话:第一种方式,这种方式思路简单,代码太长!用if语句:(if语句无限嵌套,不推荐!)#include<stdio.h>int main(){ int x,y,z,s; printf("请输入三个数;"); scanf("%d %d %d",&x,&y,&z); if(x>y){ if(x>z) { if(y>z) { pri原创 2022-01-24 10:00:00 · 997 阅读 · 6 评论 -
(第14列)C语言:结构体变量做函数参数
题目:有n个结构体变量,内含学生姓名、学号和三门课程的成绩。要求输出平均成绩最高的学生的全部信息。实现的结果如下:话不多说,直接代码解析!第一步:定义和声明//声明结构体变量类型struct student{ char name[20]; int num; float score[3]; float average;}; //定义输入函数input void input(struct student stu[]); //因为比原创 2022-01-23 10:00:00 · 1610 阅读 · 6 评论 -
(第13列)C语言:结构体数组------学生成绩排名
题目:有n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各学生的成绩。要实现下面的功能:话不多说!直接代码见真知!第一步:定义和声明//声明结构体类型struct student{ char name[20]; int num; float score;};//输入printf("请输入学生数:");scanf("%d",&n);//定义结构体数组,存放键盘输入的数据struct student stu[n.原创 2022-01-22 16:00:07 · 5856 阅读 · 7 评论 -
(第12列)C语言:定义结构体数组-----投票系统
题目:有三个候选人,有十个选民,每个只能投票一人,要求编一个统计投票的程序,先后输入被选人的名字,最后输出个人得票结果。说再多还是代码一步步解释更好:第一步:首先定义结构体数组://定义结构体数组,并初始化三名候选人和票数struct person { char name[20]; int count; }arry[3]={"李华",0,"小明",0,"小红",0};第二步:声明: int i,j; char arry_name[20];/原创 2022-01-21 19:12:50 · 2459 阅读 · 7 评论 -
(第11列)C语言练习:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。五步带你解决。
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。你来找代码就说明你已经思考过,实在是写不出来,我也不说废话,直接代码解析:第一步:首先声明加输入: int arry[5],i,j=0,k=0; int max,min; printf("请输入十个数:\n"); for(i=0;i<5;i++) { scanf("%d",&arry[i]); } 第二步:由于我们要找最大和最小,首先赋初值: //由于前面.原创 2022-01-20 20:21:14 · 10874 阅读 · 18 评论 -
(第十列)C语言基础练习:打印杨辉三角,文字解释太烦,直接代码解析。
题目:打印杨辉三角前十行,如下:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 28 56 70 56 28 8 11 9 36 84 126 126 84 36原创 2022-01-19 19:48:54 · 591 阅读 · 6 评论 -
(第九列)c语言典型题型:输入十个数,打印它的逆序。
一个复杂的正确解释,一个偷懒的解释。原创 2022-01-14 10:20:14 · 2728 阅读 · 10 评论 -
(第八列)c语言基础:寻找数组中最大值和最小值,一串代码同时实现。
题目:键盘输入十个数,找出其中的最大值和最小值找最大:#include<stdio.h>int main(){ int aim[10]; int i,max=0; for(i=0;i<10;i++) { scanf("%d",&aim[i]); if(aim[i]>max) { max=aim[i]; } } printf("最大值为:%d",max); return 0;}找最小:#include<原创 2022-01-12 20:06:58 · 821 阅读 · 9 评论 -
(第七列)C语言:在排好序的数列中插入一个新的数,原来这么简单?
特别容易的理解来了,确定不看一下?说不定能轻松让你理解如何实现插入数据。原创 2022-01-06 16:58:16 · 3293 阅读 · 14 评论 -
(第六列)C语言最简单的排序方法,这两种必须懂:冒泡排序和交换排序。
初学者必须要弄懂的排序方式。原创 2022-01-05 20:23:30 · 702 阅读 · 7 评论 -
(第五列)C语言常见基础题型,确定不看一下?:求10000到100000的五位回文数。
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。代码如下:注:把个位、十位、千位、万位的数字分别赋值给变量a、b、d、e,然后进行比较即可。...原创 2022-01-03 15:52:44 · 918 阅读 · 8 评论 -
(第四列)C语言常见基础题型,确定不看一下?:递归函数如何使用?
题目:输入几个字母,然后程序打印反序。如输入abcdef , 结果打印出fedcba 。程序如下:主函数中:首先确定输入字母的个数,然后定义一个空函数(void fact(int n)),再调用函数fact。函数fact中:首先定义一个字符型变量really,个数n是递减的,输入个数n=6,输入字符为abcdef,如下:编译运行:...原创 2022-01-02 17:34:59 · 631 阅读 · 10 评论 -
(第三列)C语言常见基础题型,确定不看一下?:打印菱形。
第一种方式:--->此种方法较为复杂, 定义的变量较多,用i的for循环表示行,每一行再分别用for循环打印空格和符号'*',由于范围是变化的如x,y,要找出其中的规律将范围进行改变如x-=1,y+=2;每一行结束用\n进行换行。第二个for与前一个相反,里面的范围也全都相反。第二种方式:--->这种方式更加简洁,没有那么多变量,其中空格和符号'*'的范围是由i进行运算所得,就不需要再定义新的变量来表示,其他地方的写法与第一种相似。...原创 2022-01-01 20:22:15 · 385 阅读 · 8 评论 -
(第二列)C语言常见基础题型,确定不看一下?:给一个考试分数判断等级(三种解法)。
题目:输入一个考试分数,100到90之间为优秀,90到80为良好,80到60为及格,60以下为不及格。第一种(if语句):二种(switch语句):注:(x/10)是把0到100的数转换到0到10进行判断。第三种(三目运算符):注:三目运算符的格式:(判断)?(真):(假) 这里运用三目运算符的嵌套。其中有个反斜杠是连接作用,运用三目运算符虽简洁但语句长,可以用反斜杠来连接上下语句。(不懂可以自己试试就知道了)...原创 2022-01-01 12:05:59 · 1482 阅读 · 7 评论 -
(第一列)C语言常见基础题型,确定不看一下?:找完数---- {一个关键点三种写法}。
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。思路:首先找出它的因子,然后加起来与原数比较,相等则是完数,反之不是完数。思路简单,关键在于如何找因子。第一种写法:关键处解析:因为每个数都有个共同因子1,所以 j 要从1开始,注意(容易出错):j 是不能与 i 相等的,一个数除以本身能整除,但本身不是因子。此时sum的值为0,sum必须放在第一个for之内,第二个for之前,为了每一次循环sum的初始值为0。{注:sum+=j.原创 2021-12-28 21:02:01 · 666 阅读 · 7 评论