C语言 第四章 数组(2)

news/2025/4/26 13:06:14/

目录

一维数组的遍历练习

实例(为数组遍历赋值)

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


http://www.ppmy.cn/news/1578809.html

相关文章

大白话react第十八章React 与 WebGL 项目的高级拓展与优化

大白话react第十八章React 与 WebGL 项目的高级拓展与优化 1. 实现 3D 模型的导入与动画 在之前的基础上&#xff0c;我们可以导入更复杂的 3D 模型&#xff0c;并且让这些模型动起来&#xff0c;就像在游戏里看到的角色和场景一样。这里我们使用 GLTF 格式的模型&#xff0c…

okhttp源码解析

1、okhttp比httpurlconnection好在哪里 OkHttp 相比于 HttpURLConnection 有以下优势&#xff1a; 功能丰富 支持连接池&#xff1a;OkHttp 通过管理连接池可以复用连接&#xff0c;减少了请求延时。而 HttpURLConnection 每次请求都需要重新建立连接&#xff0c;效率降低。 …

Driver Development Kit(驱动开发服务)

文章目录 一、Driver Development Kit 简介二、外设扩展驱动客户端开发指导一、Driver Development Kit 简介 Driver Development Kit(驱动开发套件)为外设驱动开发者提供高效、安全、丰富的外设扩展驱动开发解决方案C-API,支持外设驱动开发者为消费者带来外设即插即用的极…

【Godot4.4】写入和读取ZIP文件

概述 Godot提供了ZIPPacker类型来读写ZIP压缩包文件。本文是简单的写入和读取文件操作测试笔记。 写入纯文本文件 extends Buttonfunc _ready():write_zip_file("1.zip",func(zip_packer):write_txt_file_to_zippack(zip_packer,"1.txt","hhhhh&qu…

clickhouse源码分析

《ClickHouse源码分析》 当我们谈论数据库时&#xff0c;ClickHouse是一个不容忽视的名字。它是一个用于联机分析处理&#xff08;OLAP&#xff09;的列式数据库管理系统&#xff08;DBMS&#xff09;&#xff0c;以其快速的数据查询能力而闻名。对于想要深入了解这个高效工具…

Hyper-YOLO: When Visual Object Detection Meets Hypergraph Computation

简介&#xff1a; 时间&#xff1a;2025 期刊&#xff1a;TPAMI 作者&#xff1a;Yifan Feng, Jiangang Huang, Shaoyi Du, Shihui Ying, Jun-Hai Yong 摘要&#xff1a; ①Hyper-YOLO引入一种新的目标检测方法&#xff0c;结合超图计算捕捉视觉特征中的复杂高阶相关性 ②…

AI浪潮下嵌入式软件开发如何拥抱AI:VSCODE + MarscodeAI插件+Embedded IDE

一、引言 AI浪潮席卷各个领域&#xff0c;各领域都在探索与AI技术深度融合以创新并提升效率。嵌入式软件开发领域同样面临此机遇与挑战。VSCODE作为流行的开源代码编辑器&#xff0c;与MarscodeAI插件、eide相结合&#xff0c;为嵌入式软件开发的AI融合提供了新思路与方法。 二…

Diffusion-Probabilistic-Models环境配置

1、相关地址 代码地址:https://github.com/Sohl-Dickstein/Diffusion-Probabilistic-Models 论文地址:https://arxiv.org/abs/2006.11239 2、python2.7 环境安装 conda create -n theano python2.7 -y conda activate theano3、包安装 下载合适的版本&#xff0c;也就是201…