C语言
学习了一年C语言,进行一次复习,跟着B站视频进行总结的,不是很全面,有点乱
变量,常量,表达式,运算符
三种基本结构:
-
顺序结构:
输入:scanf,
输出:printf,
赋值:=,+=,-= -
选择结构:
if:单分支,
if else:双分支,
多个分支:if else 嵌套 ,switch -
循环结构:
for(语句1;语句2;语句3){//次数已知
循环体
}
while(){//次数不知
循环体
}
条件:关系表达:>,<,,!=,<=,>=;
逻辑表达式:&&,||,!.
闰年:year%40&&year%100!=0||year%400==0
while(1){//无限循环
If() break;
}
循环的嵌套:
1、表格式数据——行、列,外层循环处理行,内层循环来处理列
2、处理穷举问题,如:换钱(100元换成1元,5元,10元,20元,50元)
数组:
名字:数组名,编号——下标,index
#define MAXSIZE 100
int a[MAXSIZE];
(int)malloc(80*sizeof(int)) //把后面的空间按照前面括号中的形式分开,动态分配内存
排序:
- 冒泡排序:前小后大,相邻数据两两比较
N个数,比较N-1趟
//冒泡法排序
for(i=0;i<n;i++){
for(j=0;j<n-1-i;j++){
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
- 选择法排序:n-1趟,升序:选择最小的,与当前第一位的比较交换 (不稳定)
//选择法排序
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
- 快速排序:
//快速排序
void swap(int arr[],int low,int high){//交换顺序
int temp;
temp=arr[low];
arr[low]=arr[high];
arr[high]=temp;
}
int Partition(int arr[],int low, int high){
int base=arr[low];//基准值
while(low<high){
while(low<high&&arr[low]>=base){
high--;
}
swap(arr,low,high);
while(low<high&&arr[low]<=base){
low++;
}
swap(arr,low, high);
}
return low;
}
void QuickSort(int arr[],int low, int high){
if(low<high){
int base=Partition(arr,low,high);
QuickSort(arr,low, base-1);
QuickSort(arr,base+1,high);
}
}
二维数组:
Int num[m][n];m*n
Num[i][j]: i:0—m-1 j:0—n-1
双重循环来操作二维数组
for(i=0;i<m;i++)
for(j=0;j<n;j++)
字符串:
string:线,串
例:姓名,地址,学号,身份证号码
char StuName[50]=”tom”; ‘\0’
char StuName[50]={‘t’,’o’,’m’,’\0’)};
scanf(“%s”,StuName);
printf(“%s”,StuName);
getchar ();
putchar();
gets(StuName);
puts(StuName);
ASCII:A->Z
字符串处理函数:复用,重复利用,string.h
函数:function——能够完成一个独立功能的程序段落,函数sin(30)=0.5,作用,功能
- 求字符串长度:strlen(字符数组);
- 字符串比较:比较其ASCII码,strcmp(字符串数组1,字符串数组2);//1>2:+;1=2:0;1<2:-
- 字符串复制:strcpy(字符数组1,字符数组2,n);//把字符串数组2里的n个字符复制到字符串数组1里
- 字符串连接:strcat(字符串数组1,字符串数组2);
- 大小写转换
大->小:strlwr(字符串)大->小
小->大:strupr(字符串)小->大
函数
- 定义函数的格式:
返回值的类型 函数名(形式参数1类型 参数1,形式参数2类型 参数2,…{
。。。。。。
} - 调用 call格式:函数名(实际参数1,实际参数2,。。。)
- 函数声明:被调用的函数在主函数之前则不用进行声明
函数声明格式:返回值的类型 函数名(参数1类型 参数1,参数2类型 参数2,…)
实参和形参的个数,类型一致,均由实参传递给形参一一对应