一、实验目的
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; } } } } // ...其他排序算法示例代码...
还没有评论,来说两句吧...