首页 > 其他分享 >数组(1)数组定义及典例

数组(1)数组定义及典例

时间:2023-11-23 22:55:05浏览次数:138  
标签:count 典例 下标 定义 10 int scanf 数组

<1>数组定义

(1)引入数组概念:————用于记录很多同类型的数字

  • 格式:类型 变量名称[元素数量];

    ——举例:int grades[100];
  • 元素数量必须是整数;

数组功能及特点:

  • 功能:

1.相当于存放数据的容器;

  • 特点:

1.一旦创建不可改变大小;
2.其中所有元素具有相同的数据类型;
3.数组中的元素在内存中连续依次排列;

(2)int a[10]示例

1)分析:

1.int a[10]为int型数组;
2.[10]说明数组有十个单元,从a[0]起始直至a[9];
3.每个单元代表一个int类型的变量;
4.可以出现在赋值的左边或者右边;

(3)数组的单元

1. 数组的每个单元就是数组类型的一个变量;
2. 数组的中括号中的数字称为下标或索引,下标从0开始计数;

(4)有效的下标范围

1.编译器和运行环境均不会检查数组下标是否越界,这也就意味着可能会存在数组越界编译器出现警告的情况,所以我们需要保证数组在有效的下标范围内运行;

(5)补充:长度为0的数组

  1. 这是一个越界数组,最大项应该为-1;
  2. 编译可以通过,但无用;

<2>相关典例:统计个数

(1)题目:

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

1.一次代码

#include<stdio.h>

int main(){
int x;
int count[10];
int i;
for(i=0;i<10;i++){
count[i]=0;
}
scanf("%d",&x);
while(x!=-1){
if(x>=0&&x<=9){
count[x]++;
}
scanf("%d",&x);
}
for(i=0;i<10;i++){
printf("%d:%d\n",i,count[i]);
}
return 0;
}

2.二次代码及其结构分析

#include<stdio.h>

int main(){
//const int number=10;//————此处的const仅在C99中使用

//1.首先在这里先确认数组大小

int x;
//int count[number];//

//2.定义数组

int i;
//for(i=0;i<number;i++){
	count[i]=0;
}//

//3.初始化数组

————注意:数组变量与本地变量一样需要初始化

scanf("%d",&x);
while(x!=-1){
	if(x>=0&&x<=9){
		//count[x]++;	//	

//4.数组参与运算

	}
	scanf("%d",&x);	
}
//for(i=0;i<number;i++){
	printf("%d:%d\n",i,count[i]);
}//

//5.遍历数组输出

return 0;

}

标签:count,典例,下标,定义,10,int,scanf,数组
From: https://www.cnblogs.com/QingYuY/p/17849029.html

相关文章

  • shell脚本——函数与数组
    函数函数和别名很像有些脚本会被反复使用alias脚本比较复杂函数脚本的别名使用函数可以避免代码重复,增加可读性,简化脚本定义函数名(){脚本}function函数名(){脚本}先定义在调用#!/bin/bashos(){ifgrep-iqcentos/etc/os-releasethenecho"该系统是cento......
  • 代码随想录-数组
    704.二分查找https://leetcode.cn/problems/binary-search/description/classSolution{public:intsearch(vector<int>&nums,inttarget){intleft=0;intright=nums.size()-1;while(left<=right){......
  • Golang学习笔记-自定义日志轮转及输出
    packagepkgimport( "fmt" "log" "log/slog" "os" "time")varcontrolLogger*slog.LoggervarfileLogger*slog.Loggerconst( timeFormat="2006-01-02")funcInitLog(filepathstring){......
  • js 对象数组排序
    //排序,根据name名称中的数字排序sortList(a:any,b:any){if(a?.name&&b?.name){constaStr=a.name.replace(/[^\d]/g,'')constbStr=b.name.replace(/[^\d]/g,'')......
  • js 数组、字符串常用方法
    JavaScript数组的常用操作增:push()向数组的末尾添加一个或更多元素,并返回新的长度unshift()在数组开头添加任意多个值,然后返回新的数组长度splice()传入三个参数,分别是开始位置、0(要删除的元素数量)、插入的元素,返回空数组concat()首先会创建一个当前数组的副本,然后再把它......
  • Java8函数式接口, 方法引用, 构造器引用, 数组引用
    函数式(Functional)接口只包含一个抽象方法的接口,称为函数式接口。你可以通过Lambda表达式来创建该接口的对象。(若Lambda表达式抛出一个受检异常(即:非运行时异常),那么该异常需要在目标接口的抽象方法上进行声明我们可以在一个接口上使用@Functionallnterface注解,这样做可以检查......
  • Vue自定义页面路由
    错误1:webpackEmptyContext(evalat./src/store/modulessyncrecursive(0.js:10),<anonymous>:2:10)路由信息由后端给出,那么前端需要动态加载路由,同时component的路径也是后端给出,但是动态加载该路径会报错//假如path='@/views/user'constcom=()=>import(path)//这......
  • c++小程序/数组排序
    数组排序1、定义交换两个整型数的函数swap2、定义sort函数给数组排序,调用swap函数Code#include<iostream.h>template<classT>voidswap(T&x,T&y){Ttemp;temp=x;x=y;y=temp;}template<classp>voidsort(p*a,pb){for(inti=0;i<10;i++){......
  • 指针操作数组
    /*************************************************************************>FileName:arr.c>Author:til>Mail:[email protected]>CreatedTime:2023年11月23日星期四10时09分25秒****************************************************......
  • strncmp源码,及其在含0x00字符数组中的使用问题
    源码结论,strncmp不能在比较字符数组中同一位置可能均为0x00时使用。#include<string.h>intSTRNCMP(constchar*s1,constchar*s2,size_tn){unsignedcharc1='\0';unsignedcharc2='\0';if(n>=4){size_tn4=n>&......