C语言 第四章 数组(2)
目录
一维数组的遍历练习
实例(为数组遍历赋值)
实例1 (查询数组是否包含指定元素)
代码功能概述
实例2(比较数组的元素求最大最小值)
代码功能概述
实例3(数组复制)
代码功能概述
实例4(数组元素逆序交换)
代码功能概述
一维数组的遍历练习
实例(为数组遍历赋值)
#include "stdio.h"
int main() {
//数组元素的遍历
int arr[10];
for (int i = 0; i < sizeof(arr)/ sizeof(int); ++i) {
//遍历为数组中的每个元素进行赋值操作
arr[i] = i;
printf( format: "%d\n",arr[i]);
}
return 0;
}
实例1 (查询数组是否包含指定元素)
//定义一个int型的一维数组,包含10个元素,判断数组中是否包含一个指定的数。
//int arr[10] = {5, 4, 2, 1, 9, 10, 3, 8, 7, 6};
int arr[10] = { [0]: 5, [1]: 4, [2]: 2, [3]: 1, [4]: 9, [5]: 10, [6]: 3, [7]: 8, [8]: 7, [9]: 6};
int mark = 0;//记录数组中是否包含我们想要的数据
for (int i = 0; i < sizeof(arr)/sizeof(int); ++i) {
if(arr[i] == 9){
printf( format: "数组中包含9\n");
mark = 1;
}
}
if(mark==0){
printf( format: "数组没有中包含9\n");
}
代码功能概述
功能是判断一个包含10个元素的整型数组中是否存在指定数字(此处为9)。
- 方法:代码先定义了一个有10个元素的整型数组 arr 并初始化,同时定义了一个整型变量 mark 并初始化为0,用于标记是否找到指定元素。接着通过 for 循环遍历数组,当数组元素等于9时,打印“数组中包含9”并将 mark 赋值为1。循环结束后,根据 mark 的值判断,若仍为0,则打印“数组没有中包含9” 。
实例2(比较数组的元素求最大最小值)
#include "stdio.h"
int main() {
//定义一个int型的一维数组,包含10个元素,然后求出数组中的最大值,最小值,总和,平均值,并输出出来。
//int arr[10] = {34, 54, 2, 32, 54, 57, 3, 32, 87, 43};
int arr[10] = { [0]: 34, [1]: 54, [2]: 2, [3]: 32, [4]: 54, [5]: 57, [6]: 3, [7]: 32, [8]: 87, [9]: 43};
//找最大值 假设第一个位置就是最大值,用第一个位置的值,和后面每一个值进行比较
int max = arr[0];
int min = arr[0];
int sum = 0;
for (int i = 1; i < sizeof(arr)/ sizeof(int); ++i) {
sum += arr[i];
if(max<arr[i]){
max= arr[i];
}
if(min>arr[i]){
min = arr[i];
}
}
printf( format: "最大值为%d\n",max);
printf( format: "最小值为%d\n",min);
printf( format: "总和为%d\n",sum);
printf( format: "平均值%d\n",sum/sizeof(arr)/ sizeof(int));
return 0;
}
代码功能概述
主要功能是求解一个整型数组中的最大值、最小值、总和以及平均值。
- 方法:处理一个包含10个元素的整型数组。先初始化数组,然后设定初始最大值和最小值为数组首元素,遍历数组过程中,一边累加元素计算总和,一边比较更新最大值和最小值。最后输出数组中的最大值、最小值、所有元素总和以及平均值。
实例3(数组复制)
int main() {
//数组复制
int arr1[5] = {[0]: 1, [1]: 2, [2]: 3, [3]: 4, [4]: 5};
int arr2[5];
//方式1: 循环
for (int i = 0; i < sizeof(arr1)/ sizeof(int); ++i) {
arr2 [i] = arr1[i];
}
for (int i = 0; i < sizeof(arr1)/ sizeof(int); ++i) {
printf( format: "%d \t",arr2[i]);
}
//方式2:
memcpy( Dst: arr2, Src: arr1, Size: sizeof(arr2));
for (int i = 0; i < sizeof(arr2)/ sizeof(int); ++i) {
printf( format: "%d \t",arr2[i]);
}
return 0;
}
代码功能概述
这段C 语言代码主要功能是将一个数组的内容复制到另一个数组,并输出复制后的数组内容,
- 方法1:通过 for 循环遍历数组 arr2 ,并使用 printf 函数输出数组 arr2 的每个元素。
- 方法2:使用 memcpy 函数将数组 arr1 的内容复制到数组 arr2 。
实例4(数组元素逆序交换)
#include "stdio.h"
int main() {
//数组元素逆序交换
//int arr[9] = {1,2,3,4,5,6,7,8,9};
int arr[9] = {[0]: 1, [1]: 2, [2]: 3, [3]: 4, [4]: 5, [5]: 6, [6]: 7, [7]: 8, [8]: 9};
//方式1: 用两个数组
int arr1[9];
int index = 0;
for (int i = sizeof(arr) / sizeof(int)-1; i >= 0; --i) {
arr1[index] = arr[i];
index++;
}
for (int i = 0; i < sizeof(arr1)/ sizeof(int) ; ++i) {
printf( format: "%d\t",arr1[i]);
}
return 0;
}
#include "stdio.h"
int main() {
//数组元素逆序
//数组元素逆序交换
//int arr[9] = {1,2,3,4,5,6,7,8,9};
int arr[9] = { [0]: 1, [1]: 2, [2]: 3, [3]: 4, [4]: 5, [5]: 6, [6]: 7, [7]: 8, [8]: 9};
//方式2:只能在原数组上进行操作
int len = sizeof(arr)/ sizeof(int);
for (int i = 0; i <len/2 ; ++i) {
int temp = arr[i]; //临时把第一个位置的值进行记录
arr[i] = arr[len-1-i]; //交换
arr[len-1-i] = temp;//交换
}
for (int i = 0; i <len ; ++i) {
printf( format: "%d\t",arr[i]);
}
return 0;
}
代码功能概述
- 方法1:这段代码通过创建一个新数组 arr1 ,从原数组 arr 的最后一个元素开始,逐个将元素复制到 arr1 中,从而实现逆序,最后输出逆序后的数组。
- 方法2:此方式直接在原数组 arr 上进行操作。通过一个循环,将数组前半部分的元素与后半部分对应的元素进行交换,实现逆序效果,最后输出逆序后的数组 。