小白上手c语言笔记
欢迎来到《小白上手 C 语言笔记》,内容涵盖 C 语言基础语法、数组的定义与使用,以及冒泡排序等常用排序方法。开始之前,先准备好编译环境,使用 Dev-C++ 或 VS Code,并安装好 C/C++ 编译器。
入门操作
- 1.添加头文件
#include<stdio.h>- 2.主函数
int main(){ //定义变量 int age=18; float f=3.1415927; char c='a'; //定义字符数组来保存字符串数据(c语言中没有现成的字符串可用) char str[]="hello";- 3.输入\输出语句
占位符:int->%d float->%f double->%lf char->%c 字符串->%s
换行符:\n 空字符:\0 ASCII 码值为 0,在 C 语言里用来标志字符串的结束。
&为取址符(变量的内存);&a取出变量a的内存地址,给该内存地址的变量赋值
eg:输入两个数字,计算和
int a,b; scanf("%d %d",&a,&b);//输入语句,输入整形a,b printf("a+b=%d \n",a+b);//输出语句,输出相加后的结果数组的使用及三种排序方法
1.数组是一种数据结构,用来保存数据,没有默认值
2.定义数组的两种方式(一维):
数据类型 数组名[长度];或 数据类型 数组名[ ]={元素1,元素2,,}
3.下标取值:0~长度-1
4.存数据:数组名 [下标]=数据;
5.取数据:数据类型 变量名=数据名[下标];
//定义整形数组 int len=5; int arr[len]={0};//定义数组,并且设置数组的默认值为0 //sizeof()用来计算内存的大小 int length=sizeof(arr) printf("%d",length); //手动输入数据 for(int i=0;i<len;i++){ scanf("%d",&arr[i]); }6.三种主要的排序方法(代码示例)
冒泡排序
for(intj=0;j<len-1;j++){for(inti=0;i<len-1-j;i++){//挨着的两个数字比较大小,交换位置if(arr[i]>arr[i+1]){inttype=arr[i];arr[i]=arr[i+1];arr[i+1]=type;}}}//打印数组的数据for(inti=0;i<len;i++){printf("%d ",arr[i]);}return1;}选择排序
#include<stdio.h>intmain(){intarr[100];//定义数组,最多存放100个数intn=0;//实际输入的元素个数scanf("%d",&n);//输入数字的个数for(inti=0;i<n;i++){//输入n个数scanf("%d",&arr[i]);}//选择排序for(inti=0;i<n-1;i++){intmin=i;//假设a[i]是未排序部分的最小值,记下下标//在i之后的元素中找到真正的最小值for(intj=i+1;j<n;j++){if(arr[j]<arr[min]){min=j;//发现更小的就更新下标}}//如果真实的最小值不是i,就把最小值换到位置i,假设的最小值换到minif(min!=i){//引入temp临时变量用来存放arr[i]inttemp=arr[i];arr[i]=arr[min];arr[min]=temp;}}//输出结果for(inti=0;i<n;i++){printf("%d ",arr[i]);}printf("\n");return0;}插入排序
#include<stdio.h>intmain(){intarr[100];//定义数组,最多存放100个数intn=0;//实际输入的元素个数scanf("%d",&n);//输入数字的个数for(inti=0;i<n;i++){//输入n个数scanf("%d",&arr[i]);}for(inti=1;i<n;i++){intkey=arr[i];//取出待插入的元素intj=i-1;//j指向已排序的最后一个元素while(j>=0&&arr[j]>key){arr[j+1]=arr[j];//比key大的元素后移一位j--;//从后往前}arr[j+1]=key;//把key放到空出的位置}//输出结果for(inti=0;i<n;i++){printf("%d ",arr[i]);}printf("\n");return0;}常用函数及其作用
举一个例子:从键盘读取一行文字(可以包含空格),把它原样打印出来,再打印这行文字的长度
#include<stdio.h>// 标准输入输出库:提供 printf、fgets 等函数#include<string.h>// 字符串处理库:提供 strlen 等函数intmain(){// 定义一个字符数组,最多存放 99 个字符 + 1 个结束符 '\0'charstr[100];// 从控制台读取一整行内容(可以包含空格)// 参数1:存放数据的数组// 参数2:最多读取的字节数(sizeof(str) = 100,实际最多读 99 个字符)// 参数3:数据来源(stdin 表示键盘输入)// 注意:fgets 会把你按下的回车(\n)也一起读进数组fgets(str,sizeof(str),stdin);// 计算字符串长度(不含结尾的 '\0',但包含 fgets 读入的 '\n')intlen=strlen(str);// 输出刚才输入的内容// 因为 str 末尾带有 '\n',所以输出后会自动换行printf("%s",str);// 输出字符串长度printf("%d",len);return0;// 程序正常结束}长度是 6 而不是 5,是因为回车产生的 \n 也被算进去了。
小结
本文从零基础出发,带你走完了 C 语言入门的关键几步:
- 基础语法:掌握了头文件引入、主函数结构、变量定义,以及输入输出语句和常用占位符的用法。
- 数组:理解了数组的定义、下标取值、存数据与取数据的方式,并学会用
sizeof()计算数组长度。 - 三种排序:通过冒泡排序、选择排序和插入排序的代码示例,熟悉了常见的排序思路与实现。
- 常用函数:了解了
printf、scanf、fgets、strlen等常用函数的作用,并动手完成了一个读取并统计字符串长度的综合示例。