数组的相关知识

这篇博客介绍了数组的基本概念,包括数组的声明、初始化、元素访问和遍历。文章通过实例展示了如何创建一维数组来存储学生成绩,并通过遍历找到最高分,然后根据成绩给出相应的等级(A、B、C或D)。程序使用Java编写,强调了数组长度的固定性和元素的默认初始化值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数组常见的概念

数组名

元素

角标、下标、索引

数组的长度:元素的个数

2.数组的特点:

①数组是有序排列的

②数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型

③创建数组对象会在内存中开辟一整块连续的空间

④数组的长度一旦确定,不能修改

3.数组的分类:

①按照维数:一维数组、二维数组。。。

②按照数组元素的类型:基本数据类型的数组、引用数据类型的数组

4.一维数组的使用
 ①一维数组的声明和初始化

静态初始化:数组的初始化的数组元素的赋值同时进行 eg ids =  new int[]{1001,1002,1003,1004};

动态初始化:数组的初始化的数组元素的赋值分开进行 eg String[] names = new String[5];

总结:数组一旦初始化完成,其长度就确定了

② 如何调用数组指定位置的元素 :通过角标的方式调用
  数组的角标(或索引)从0开始,到数组的长度-1结束

③ 如何获取数组长度   属性:length

eg  System.out.println(names.length);

 ④ 如何遍历数组

eg:
    for(int i = 0; i < names.length; i++){
        System.out.println(names[i]);
    }

5 数组元素的默认初始化值
 *  数组元素是整型: 0
 *  数组元素是浮点型: 0.0
 *  数组元素是char型: 0 或 ‘\u0000’ 而非‘0’
 *  数组元素是boolean型: false
 *  数组元素是引用数据类型:null

练习:从键盘读入学生成绩,找出最高分,并输出学生成绩等级
成绩 >= 最高分-10 等级为‘A‘
成绩 >= 最高分-20 等级为‘B’
成绩 >= 最高分-30 等级为‘C’
其余  等级为‘D’
提示:先读入学生人数,根据人数创建int数组,存放学生成绩

package com.lxy.exer;

import java.util.Scanner;

/*从键盘读入学生成绩,找出最高分,并输出学生成绩等级
成绩 >= 最高分-10 等级为‘A‘
成绩 >= 最高分-20 等级为‘B’
成绩 >= 最高分-30 等级为‘C’
其余  等级为‘D’
提示:先读入学生人数,根据人数创建int数组,存放学生成绩*/

public class ArratDemo1 {
	public static void main(String[] args) {
		// 1.使用Scanner,读取学生个数
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入学生人数:");
		int number = scanner.nextInt();
		
		// 2.创建数组,存储学生成绩;动态初始化
		int[] scores = new int[number];
		
		// 3.给数组中的元素赋值
		System.out.println("请输入" + number +"个学生成绩:");
		int maxScore = 0;
		for(int i = 0; i < scores.length; i++){
			scores[i] = scanner.nextInt();
			if(maxScore < scores[i]){
				maxScore = scores[i];
			}
		}
		
//		// 4.获取元素中的最大值;最高分
//		int maxScore = 0;
//		for(int i = 0; i < scores.length; i++){
//			if(maxScore < scores[i]){
//				maxScore = scores[i];
//			}
//		}
//		
		
		// 5.根据学生成绩,得到等级,并输出
		char level;
		for(int i = 0; i < scores.length; i++){
			if(maxScore - scores[i] <= 10){
				level = 'A';
			}else if(maxScore - scores[i] <= 20){
				level = 'B';
			}else if(maxScore - scores[i] <= 310){
				level = 'C';
			}else{
				level = 'D';
			}
			
			System.out.println("student " + i + " Score is " + scores[i] + ",grade is " + level);
		}
	}

}

在C语言中,结构体(struct)是一种用户自定义的数据类型,它可以包含不同类型的数据成员。结构体数组是结构体的一种应用,它允许我们创建包含多个结构体实例的数组。 ### 结构体数组的定义 定义结构体数组的方式与定义普通数组类似。以下是一个示例: ```c #include <stdio.h> // 定义一个结构体 struct Person { char name[50]; int age; }; int main() { // 定义一个包含5个Person结构体的数组 struct Person people[5]; // 初始化数组中的元素 strcpy(people[0].name, "Alice"); people[0].age = 30; strcpy(people[1].name, "Bob"); people[1].age = 25; strcpy(people[2].name, "Charlie"); people[2].age = 35; strcpy(people[3].name, "Diana"); people[3].age = 28; strcpy(people[4].name, "Ethan"); people[4].age = 40; // 打印数组中的元素 for (int i = 0; i < 5; i++) { printf("Name: %s, Age: %d\n", people[i].name, people[i].age); } return 0; } ``` ### 解释 1. **定义结构体**:首先,我们定义了一个名为`Person`的结构体,它包含两个成员:`name`(一个字符数组)和`age`(一个整数)。 2. **定义结构体数组**:在`main`函数中,我们定义了一个包含5个`Person`结构体的数组`people`。 3. **初始化数组元素**:我们使用`strcpy`函数将字符串复制到`name`成员中,并直接为`age`成员赋值。 4. **打印数组元素**:最后,我们使用一个`for`循环遍历数组并打印每个结构体的内容。 ### 相关问题 1. 如何定义一个结构体? 2. 如何初始化结构体数组? 3. 如何访问结构体数组中的元素? 4. 如何在结构体中使用指针?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值