当前位置: 首页 > news >正文

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

相关文章:

  • VMware 17 3389远程接入会出现无响应
  • 系统设计面试总结:5、加密算法的应用场景、哈希算法(MD、SHA、BCrypt)、对称加密(DES和3DES、AES)、非对称加密(RSA、DSA)
  • python系列之运算符
  • 重要!!! 改进 梯度方差(Fisher 信息近似) 指数移动平均
  • MATLAB代码开发实战:从入门到高效应用
  • 使用AI一步一步实现若依前端(10)
  • Java基础语法精讲:类型转换、常用运算符与用户输入处理引言
  • 苍穹外卖实战附源码-DAY1
  • 掌握C++内联与异常:构建高效且健壮的应用程序
  • 蓝桥杯备考:数据结构堆之序列合并
  • 基于javaweb的SpringBoot农资商城购物商城系统设计与实现(源码+文档+部署讲解)
  • Linux第19节 --- 用户缓冲区和文件系统
  • Git 的基本概念和使用方式(附有思维导图)
  • 数1的个数(信息学奥赛一本通-1095)
  • 在芯片设计的后端流程中,通过metal修timing是什么意思,怎么实施。举个timing违例说明一下
  • java设计模式之适配器模式
  • 2011-2020年 全国省市县-数字普惠金融指数数字经济指数绿色金融指数县域数字乡村指数
  • Ollama本地部署deepseek-r1蒸馏版
  • eNSP中路由器的CON/AUX接口、GE Combo接口、Mini USB接口、USB接口、WAN侧uplink接口、FE接口、GE接口介绍
  • jmeter-AES加密
  • 国家能源局通报上月投诉情况:赤峰有群众反映电费异常增高,已退费
  • 黄宾虹诞辰160周年|一次宾翁精品的大集结
  • 中吉乌铁路重点控制性工程开工建设,包括三座隧道
  • 80后共青团云南省委副书记许思思已任迪庆州委副书记
  • 新华社评论员:汇聚起工人阶级和广大劳动群众的磅礴力量
  • 高璞任中国第一汽车集团有限公司党委常委、副总经理