数组(2021.10.3)

2021.11.10 Java 数组 数组 数组存放在堆内存中,是引用数据类型,只能存放Java对象的内存地址。 ·优点:查找某个下标上的元素效率极高 1.数组以第一个元素内存地址已知 2.数组上每个内存地址是连续的 3.数组中每个元素所占空间大小是一样的 4.知道下标,所以知道偏移量,就能够算出指定下表内存地址 所以数组是查找效率最高的数据结构 (数组中存储100个元素和100W个元素检索效率是相同的,数组中不会一个一个找,是通过数学表达式算出来然后直接定位) ·缺点: 1.由于为了保证每个元素的内存地址连续,所以在数组上随机删除或增加元素 阅读详情

初试数组

1.如何写一个程序计算用户输入的数字的平均数?

#include<stdio.h>

int main()
{
	int x;
	double sum=0;
	int cnt=0;
	
	scanf("%d",&x);
	while(x!=-1)
	{
		sum +=x;
		cnt++;
		scanf("%d",&x);
	}
	if(cnt>0){
		printf("%f\n",sum/cnt);
	}
	return 0;
 } 

此时不需要记录输入的每个数

2.如果同时还需要输出每一个大于平均数的数呢?这时候就要想办法把前面输入的每一个数记录下来,就要用到数组了。

#1定义数组   int number[100];    这个数组里面的每一个单元都是一个int,数组的大小为100,可以放下100个int;

#2对数组中的元素赋值   number [cnt] = x;    cnt从零不断增长的过程中,我们让number这个数组中cnt这个位置上的那个单元等于x,即x不断的往后放。例如,第一个x放到number[0]的位置,第二个x放到number[1]的位置

#3遍历数组,使用数组   再通过一个循环判断并输出数组中大于平均数的数字,判断过程就是遍历整个数组的过程。

改造后如下:

#include<stdio.h>

int main()
{
	int x;
	double sum=0;
	int cnt=0;
	
	scanf("%d",&x);
	int number[100];                 //#1
	while(x!=-1)
	{
		number[cnt]=x;               //#2
		sum +=x;
		cnt++;
		scanf("%d",&x);
	}
	if(cnt>0){
		printf("%f\n",sum/cnt);
	}
	int i;                           //#3
	for(i=0;i<cnt;i++)
	{   if(number[i]>sum/cnt)
	    {	printf("%d\n",number[i]);
		}
	}
	return 0;
 } 

 但其实这个程序是危险的,后续会说到。

数组的认识

定义数组:

<类型>变量名称[元素数量];

  int grades[100];   double weight[20].

数组的特点:

元素的数量是整数,且在C99之前,元素数量必须是编译时刻确定的字面量。

数组是其中所有的元素具有相同的数据类型,一旦创建,不得改变大小,且数组中的元素在内存中是联系依次排列的。

数组的单元:

数组的每个单元就是数组类型的一个变量,使用数组时放在[]中的数字叫做下标或索引,下标一定是从0开始计数的。

 所以计算平均数中直接限制元素数量为100的做法是很危险的,因为无法保证输入的数量不超过100,容易出现越界的情况。如果是C99的编译器,可以这样做:

使数组的大小变成一个动态的值,随用户输入的大小而定。 

数组应用:统计个数 

写一个程序,输入数量不确定的[0,9]范围里的整数,统计每一种数字出现的次数,输入-1表示结束。

#include<stdio.h>

int main(void)
{
	const int number = 10;			//数组的大小 
	int x;
	int count[number];			    //定义数组 
	int i;
	
	for(i=0;i<number;i++){			//利用for循环初始化数组 
		count[i] = 0;
	}
	scanf("%d",&x);
	while(x != -1){
		if(x>=0&&x<=9){
			count[x]++;				//数组参与运算 
		}
		scanf("%d",&x);
	}
	for(i=0;i<number;i++){			//遍历数组输出 
		printf("%d:%d\n",i,count[i]);
	}
	
	return 0;
}		

MATLABR2021b MATLAB下载安装,及使用 阅读详情

相关推荐

Excel 365/2021 动态数组函数实战:FILTER、SORT、UNIQUE 组合处理 10万行数据

本文深入解析Excel 365/2021动态数组函数FILTER、SORT、UNIQUE的组合应用,通过实战案例展示如何高效处理10万行数据。文章详细介绍了这些函数的语法、优化技巧及错误处理,帮助用户大幅提升数据处理效率,实现从传统繁琐操作到现代智能工作流的转变。

weixin_33139275的博客 316

小学生都看得懂的C语言入门(3): 数组与函数

#include <stdio.h> int main() { int x; double sum=0; int cnt=0; scanf("%d",&x){ sum+=x; cnt++; scanf("%d",&x); } printf("the mean is %d",sum/cnt); 这是之...

weixin_30553065的博客 202

插入排序P7910[CSP−J2021]插入排序P7910 [CSP-J 2021] 插入排序

P7910CSP−J2021插入排序P7910CSP−J2021插入排序。

jiajingxuan2011的博客 1534

2021.11.3 day10 C语言关于二维数组的基础笔记

二维数组: 一维数组可以看成把变量排成一排,通过编号访问 二维数组相当于把变量排成一个矩形,通过行号和列号访问 定义: 类型 数组名[行数][列数]; int arr[3][5] 使用:数组名[行下标][列下标] 行下标:0~行数-1 列下标:0~列数-1 遍历:一般需要与双层for循环配合,一般的外层循环负责遍历行 内层循环负责遍历列 for(int i=0;...

m0_63097956的博客 395

24GHz雷达DIY呼吸监测仪:用树莓派+TI IWR6843搭建生命体征检测系统(附Python代码)

本文详细介绍了如何利用树莓派和TI IWR6843毫米波雷达模块DIY非接触式呼吸监测仪。通过硬件选型、信号处理流水线设计和实时可视化系统搭建,实现高精度的生命体征检测,特别适合医疗健康和运动监测场景。附带的Python代码帮助开发者快速复现该系统。

rl6adventurer的博客 985

01. VBA从入门到精通——录制宏、窗口、快捷键

excel表功能区右击→常用→选择显示开发工具选项→确定Visual Basic:打开VBA窗口宏:查看要录制的宏录制宏:准备录制宏使用相对引用:录制宏的时候对单元格的引用做一个设置宏安全性:对宏的使用做安全设置,一般设置为禁用所有宏,并发出通知,此时打开带有宏代码的工作薄时会出现警告标记,如果宏可信就选择启动。

weixin_43812198的博客 1696

2021-08-10 SSL 模拟赛 T3 (树状数组维护版)(最优解)

2021-08-10 SSL 模拟赛 T3 (树状数组维护版) ~~怎么还是没有标题??~~啦啦啦我又回来了 本解法是暴力在时间复杂度边缘疯狂徘徊的蒟蒻。 本解法是树状数组的降维打击。 题目描述:戳这里 思路: 在暴力版里我已将讲过了,可以去看看我的暴力版 ...

天空之心 143

避开STM32中断优先级配置的坑:HAL_NVIC_SetPriority()参数你真的用对了吗?

本文深入解析STM32中断优先级配置中的关键问题,重点剖析HAL_NVIC_SetPriority()函数的正确使用方法。通过实际案例揭示优先级分组设置、抢占优先级与子优先级的区别,提供多中断系统中的优化策略和调试技巧,帮助开发者避免常见配置错误,提升系统稳定性。

weixin_42532938的博客 422

2021天梯赛真题题解 L1-3 强迫症 (10 分) C语言版本 整数转换为字符串数组

字符串数组,天梯赛

with_still_water的博客 909

NE564锁相环FM解调电路设计:10.7MHz中频实测与3种失真优化方案

本文详细解析了NE564锁相环在10.7MHz中频FM解调电路中的设计与优化方案。通过分析锁相环技术基础、电路架构设计及典型失真问题,提供了3种有效的失真优化方法,包括限幅增强、VCO频偏补偿和环路滤波优化,显著提升解调性能。文章还涵盖了PCB布局要点和系统测试验证,为高频电子线路设计提供实用参考。

weixin_33314040的博客 350

微信小程序实现锚点效果 scroll-view的scroll-into-view属性

小程序中实现锚点效果,可以直接使用scroll-view的scroll-into-view属性就可以实现锚点效果,比较方便简单。那么需要用到scroll-view那些参数呢,下面具体讲讲:效果展示: wxml **注意:**viewid值是动态的,通过setData设置即可。js wxss......

FaxMiao的博客 5449

2021-04-26:整型数组arr长度为n(3 <= n <= 10^4),最初每个数字是<=200的正数且满足如下条件: 1. arr[0] <= arr[1]。2.arr[n-1] <= arr

2021-04-26:整型数组arr长度为n(3 <= n <= 10^4),最初每个数字是<=200的正数且满足如下条件: 1. arr[0] <= arr[1]。2.arr[n-1] <= arr[n-2]。3. arr[i] <= max(arr[i-1], arr[i+1])。但是在arr有些数字丢失了,比如k位置的数字之前是正数, 丢失之后k位置的数字为0。 请你根据上述条件, 计算可能有多少种不同的arr可以满足以上条件。比如 [6,0,9] 只有还原成 [6

福大大架构师每日一题 2万+

杂记 | 使用keycloak实现SSO单点登录(新手向,概念、原理、逻辑、详细步骤、难点解释)

使用keycloak实现SSO单点登录(概念、原理、逻辑、详细步骤、难点解释)

野生猿林仔的博客 2万+

leetcode 剑指 Offer 39. 数组中出现次数超过一半的数字 & 169. 多数元素(2020.3.13) & 面试题 17.10. 主要元素(2021.7.9)(投票算法)

【题目】 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2 官方题解 【解题思路1】排序 出现次数最多的元素大于n/2次的就是众数,暴力法会超时,所以可以先排序,然后下...

Sophia_fez的博客 658

华为铁三角(AR、SR、FR)的考核指标设计

以和为核心,通过和实现协同。考核维度分为和,并随市场阶段动态调整权重。

从技术实践立足,从项目管理方法论延伸思考 2769

通过WorkVisual连接KUKA机器人的具体方法

通过WorkVisual连接KUKA机器人的具体方法

Robot_PLC_HMI_Automation 6843

JS学习--数组(二)--2021-03-18

JS数组(二)一、数组元素的添加和删除1.1 元素添加1.2 元素删除二、数组遍历2.1 用for循环2.2 排除不合法的元素三、多维数组四、数组方法 一、数组元素的添加和删除 1.1 元素添加 添加元素最简单的方法就是: //开始是一个空数组 let a = []; //然后向其中添加元素 a[0] = "zero"; a[1] = "one"; 另一种方式就是使用push()方法在数组末尾增加一个或多个元素: //开始是一个空数组 let a = []; //在末尾添加一个元素 a =

A2113438464的博客 248

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数组(2021.10.19)

二维数组 对于int a[3][5] 通常理解数组a是一个三行五列的矩阵; 二维数组的遍历 for( i=0;i<3;i++){ for( j=0;j<5;j++){ a[i][j] = i*j; } } a[i][j]是一个int,表示第i行第j列上的单元; 二维数组的初始化: int a[][5] = { {0,1,2,3,4}, {2,3,4,5,6}, }; 列数是必须给出的,行数可以由编译器来数,可以省略 每行一个{},用逗..

studingbear的博客 374

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

2021-10-11 五、数组

数组1. 数组的概述1.1数组的理解1.2 数组的相关概念1.3 数组的特点1.4 数组的分类2. 一维数组的使用2.1 一维数组的声明和初始化2.2 如何调用数组的指定位置的元素2.3 如何获取数组的长度2.4 如何遍历数组2.5 数组元素的默认初始化值2.6 数组的内存解析2.6.1 Java虚拟机内存的简化结构2.6.2 一维数组的内存解析3. 多维数组的使用3.1 二维数组3.1.1 二维数组的使用3.1.2 二维数组元素的默认初始化值3.2 二维数组的内存解析 1. 数组的概述 1.1数组的理解

weixin_43901488的博客 300

2021CSP-J3

2020CSP-J3 一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项) 1、文件型病毒传染的主要对象是() A.文本文件 B.系统文件 C.可执行文件 D. .EXE 和.COM文件 2、24 针打印机的分辨率约为180dpi. Dpi 数越大,打印精度越高。其中单位dpi是指() A.印点/厘米 B.印点/毫米 C.印点/英寸 D.印点/寸 3、内存地址的最重要特点是() A.随机性 B.唯一性 C.顺序性 D.连续性 4、多媒体计算机是指() A.具有多种功能的计算机 B

Old flame.Scar 2044

定义一个数组2021-10-17

1.数组的定义 数组的表示方式是数组名[常量表达式],定义一个数组为“类型说明符 数组名[常量表达式]”,如 int a[10] 表示定义了一个整型数组,数组名为a,此数组包含10个整形元素。 在定义数组时,需指定数组中元素的个数,方括号中的常量表达式用来表达元素的个数,即数组长度。注意,下标是从0开始的,如a[3]中的3个元素为a[0],a[1],a[2],不存在a[3]。 常量表达式中可以包括常量和符号常量,如"int a[3+5]"是合法的,不能包含变量,如"int a[n]"是不合法的。

Dear_Atri的博客 2832

Excel 365/2021 动态数组函数实战:FILTER、SORT、UNIQUE 组合处理 10万行销售数据

本文详细介绍了Excel 365/2021动态数组函数FILTER、SORT和UNIQUE在10万行销售数据处理中的高效应用。通过实战案例展示如何简化数据清洗、多维度分析和动态报表构建,显著提升数据处理效率,告别传统复杂公式嵌套。

weixin_29041195的博客 341

2021-10-13 一、数组与队列

数组与队列1. 稀疏数组1.1 何为稀疏数组1.2 应用场景1.3 图文解析1.4 代码实现与思路 1. 稀疏数组 1.1 何为稀疏数组 稀疏数组,首先把稀疏拆出来,理解为写程序的你,头发日渐稀疏,渐少。 比如一个棋盘,可以用二位数组表示,这个棋牌(只有三种数据,0为没有棋子,1为黑棋,2为白棋),我们可以只提取出黑白棋的位置构成稀疏数组。 1.2 应用场景 比如 一些量大,且多数为重复值的时候,可以使用(棋牌,地图等等) 1.3 图文解析 首先创建新的数组来记录数组有几行、几列、有多少不同的值

weixin_43901488的博客 316

2021-10-24稀疏数组

稀疏数组与原始数组转换 package sparsearrayArray; /** * @author shkstart * @create 2021 -09-16 20:07 */ public class SparsearrayTest { public static void main(String[] args) { //创建一个原始的二维数组 11*11 //0:表示没有棋子,1:表示黑子,2:表示白子 int[][] chessAr

qq_60501190的博客 1118

Day 3 2021.3.3方法-数组的运用

Day 3 :2021.3.3 Java 方法详解 什么是方法 如:System.out.prinln()中 System为一个类;out为一个对象;println()为一个方法; 如何定义一种方法并调用。 Java都是值传递 package com.hong.Day003; public class WayDemo1 { //main方法 public static void main(String[] args) { int sum = add(1,2);

hc1235的博客 202

java 随机数 10到 20_用java:产生10个10-20的整型随机数存入数组,然后求出最大值、最小值以及它们在数组中的位置...

用java:产生10个10-20的整型随机数存入数组,然后求出最大值、最小值以及它们在数组中的位置关注:235答案:4mip版解决时间 2021-01-27 02:55提问者1朵凋残的╮小花2021-01-26 20:58用java:产生10个10-20的整型随机数存入数组,然后求出最大值、最小值以及它们在数组中的位置最佳答案二级知识专家轉角離身2021-01-26 21:27import...

weixin_30271447的博客 2347
上一篇: 正序分解整数(13425--->1 3 4 2 5 )
下一篇: 函数入门(2021.10.5)
studyingbear
博客等级 码龄5年 20粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值