一、实验目的
1、掌握C语言中数组的基本概念和使用方法。
2、学会使用C语言实现数组的创建、初始化、赋值、访问和修改。
3、掌握常见的数组排序算法,如冒泡排序、选择排序、插入排序等。
4、提高编程能力和逻辑思维能力。
二、实验内容
1、数组的创建与初始化
- 定义一个整型数组,存储5个元素,分别为:10, 20, 30, 40, 50。
- 定义一个字符型数组,存储6个元素,分别为:'A', 'B', 'C', 'D', 'E', 'F'。
- 动态创建一个整型数组,存储10个元素,元素的值由用户输入。
- 动态创建一个字符型数组,存储8个元素,元素的值由用户输入。
2、数组的赋值与访问
- 将整型数组的元素分别赋值为:1, 2, 3, 4, 5。
- 将字符型数组的元素分别赋值为:'a', 'b', 'c', 'd', 'e', 'f'。
- 访问整型数组的第3个元素,并输出其值。
- 访问字符型数组的第4个元素,并输出其值。
3、数组的修改
- 将整型数组的第2个元素修改为200。
- 将字符型数组的第5个元素修改为'Z'。
- 遍历整型数组,将每个元素的值加1。
- 遍历字符型数组,将每个元素的值加1(如果是字母则按字母表顺序向后移动一位)。
4、数组排序
- 对整型数组进行冒泡排序,并输出排序后的结果。
- 对字符型数组进行选择排序,并输出排序后的结果。
- 对整型数组进行插入排序,并输出排序后的结果。
三、实验步骤与代码
#include <stdio.h>
#include <stdlib.h>
int main() {
int arr1[5] = {10, 20, 30, 40, 50}; // 定义整型数组并初始化
char arr2[6] = {'A', 'B', 'C', 'D', 'E', 'F'}; // 定义字符型数组并初始化
int n;
printf("请输入要创建的整型数组的大小:");
scanf("%d", &n); // 获取用户输入的数组大小
int *arr3 = (int *)malloc(n * sizeof(int)); // 动态创建整型数组
printf("请输入%d个整型元素:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr3[i]); // 获取用户输入的整型元素并赋值给动态数组
}
char ch;
printf("请输入要创建的字符型数组的大小:");
scanf("%d", &n); // 获取用户输入的数组大小
char *arr4 = (char *)malloc(n * sizeof(char)); // 动态创建字符型数组
printf("请输入%d个字符元素:", n);
for (int i = 0; i < n; i++) {
scanf(" %c", &ch); // 获取用户输入的字符元素并赋值给动态数组(注意空格)
arr4[i] = ch;
}
// ...其他操作代码...
}
2、数组的赋值与访问、修改等操作类似,不再赘述。
3、数组排序部分代码如下:
// 冒泡排序示例代码(整型数组)
void bubble_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) { // 如果前一个元素大于后一个元素,交换它们的位置
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// ...其他排序算法示例代码...



还没有评论,来说两句吧...