C语言基础

1. 数据类型

1.1 整型

  • 整型分为有符号整型和无符号整型

  • 整型分为短整型、整型、长整型

  • 整型分为char、short、int、long、long long

1.2 浮点型

  • 浮点型分为单精度浮点型和双精度浮点型

  • 浮点型分为float、double

1.3 字符型

  • 字符型分为char

1.4 布尔型

  • 布尔型分为bool

1.5 空类型

  • 空类型分为void

1.6 枚举类型

  • 枚举类型分为enum

2. 变量

2.1 变量定义

  • 变量定义的格式为:数据类型 变量名;

  • 变量定义的格式为:数据类型 变量名 = 初始值;

2.2 变量初始化

  • 变量初始化的格式为:数据类型 变量名 = 初始值;

  • 变量初始化的格式为:数据类型 变量名 = 初始值;

2.3 变量赋值

  • 变量赋值的格式为:变量名 = 值;

2.4 变量使用

  • 变量使用的格式为:变量名;

3. 一些基础算法

3.1 冒泡排序

  • 冒泡排序的格式为:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void bubbleSort(int arr[], int n) {
    for (int i = 0; i < n-1; i++) {
    for (int j = 0; j < n-i-1; j++) {
    if (arr[j] > arr[j+1]) {
    int temp = arr[j];
    arr[j] = arr[j+1];
    arr[j+1] = temp;
    }
    }
    }
    }

3.2 选择排序

  • 选择排序的格式为:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void selectionSort(int arr[], int n) {
    for (int i = 0; i < n-1; i++) {
    int min_idx = i;
    for (int j = i+1; j < n; j++) {
    if (arr[j] < arr[min_idx]) {
    min_idx = j;
    }
    }
    int temp = arr[min_idx];
    arr[min_idx] = arr[i];
    arr[i] = temp;
    }
    }

3.3 汉诺塔

  • 汉诺塔的解法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
int i;
int hanoi(int n, char a, char b, char c){
if(n==1){
printf("%d:%c->%c\n",n,a,c);
}
else{
hanoi(n-1,a,c,b);
printf("%d:%c->%c\n",n,a,c);
hanoi(n-1,b,a,c);
}
i++;
return 1;
}
int main(){
int n;
scanf("%d",&n);
hanoi(n,'a','b','c');
printf("次数:%d",i);
return 0;
}

3.4 斐波那契数列

  • 斐波那契数列的解法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int fibonacci(int n){
if(n==1||n==2){
return 1;
}
else{
return fibonacci(n-1)+fibonacci(n-2);
}
}
int main(){
int n;
scanf("%d",&n);
printf("%d",fibonacci(n));
return 0;
}

3.5 打擂台

  • 打擂台的解法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
输入3个不同的整数,输出其中最小的一个。
输入示例:
3 4 5
输出示例:
3
*/
#include <stdio.h>
#include <math.h>
#define N 3

int min(int x, int y);

int main(void) {
int arr[3] = {0};
for (int i = 0; i < N; i++) {
scanf("%d", &arr[i]);
}
int numMin = min(arr[0], min(arr[1], arr[2]));
printf("%d", numMin);
return 0;
}
int min(int x, int y) {
return x < y ? x : y;
}
/*
int main(){
int a,b,c,min;
scanf("%d %d %d",&a,&b,&c);
mim=a
if(min>b){
min=b;
}
if(min>c){
min=c
}
printf("%d",min);
return 0
}
*/

3.n 其他算法

  • 详情请见https://gitee.com/HG-dev17/GXNU-C-works