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 上进行操作。通过一个循环,将数组前半部分的元素与后半部分对应的元素进行交换,实现逆序效果,最后输出逆序后的数组 。
 
