AI悦创
V1
2022/12/24阅读:30主题:凝夜紫
19-用数组保存成绩
你好,我是悦创。
0. 目录
-
语数外物化生的成绩怎么表示? -
什么是数组和数组的语法 -
用数组处理 6 门课的成绩
1. 语数外物化生的成绩怎么表示?
-
用六个变量表示,如果有更多的科目怎么办? -
如果有更多的科目怎么办? -
如果想求出成绩最高的科目怎么办?
public class SevenScore {
public static void main(String[] args) {
// 声明六个变量, 分别代表六门科目的成绩
int YuWen = 0;
int ShuXue = 0;
int WaiYu = 0;
int WuLi = 0;
int HuaXue = 0;
int ShengWu = 0;
}
}
2. 什么是数组和数组的语法
2.1 数组的特点是:
-
数组是相同类型的变量的集合,所有元素的类型都一样 -
可以指定数组包含的元素个数,最多为 int 的最大值个「我们要创建数组的时候,数组的类型「大小」,必须是 int」 -
元素有固定的顺序 -
每个元素都有一个固定的编号,称之为索引(index),从 0 开始递增,类型为 int -
可以像操作变量一样读写数组中的任何一个元素 -
如果说之前的变量是一张有名字的纸,可以通过这个名字读写这个变量;数组则是一个有名字的本子。本子有一个名字,每页纸有一个页码。可以通过本子的名字和页码读写对应的数组元素
2.2 创建和使用一个数组的语法
数组元素类型[] 变量名 = new 数组元素类型[数组长度]
变量名[索引]
可以使用这个变量,可以读取也可以给它赋值
public class CreateArray {
public static void main(String[] args) {
int[] intArray = new int[9]; // new 创建、创造
System.out.println(intArray[2]);
double[] doubleArray = new double[100];
System.out.println(doubleArray[66]);
// 添加数据
intArray[0] = 0;
intArray[1] = 1;
intArray[2] = 2;
System.out.println(intArray[2]);
System.out.println(intArray.length); // 获取数组长度
}
}
在我们没有给数组中的元素赋值「添加数据」,那数组内的数据类型,都是数组类型的缺省值。对于数字类型,它的缺省值是:0。
public class array_type {
public static void main(String[] args) {
int[] intArray = new int[9];
System.out.println(intArray[0]);
short[] shortArray = new short[9];
System.out.println(shortArray[0]);
double[] doubleArray = new double[9];
System.out.println(doubleArray[0]);
String[] StringArray = new String[9];
System.out.println(StringArray[0]);
}
}
3. 用数组处理 6 门课的成绩
3.1 创建数组来表示 6 门课的成绩
-
创建一个大小为 6 的 double 类型的数组 -
创建一个大小为 6 的 String 数组,代表每门课的名字 -
为每门课创建一个 int 变量,值为这门课的成绩对应的数组的索引,以便操作每门课的成绩和名字
3.2 求出最高的成绩
-
创建一个大小为 6 的 double 类型的数组 -
创建一个大小为 6 的 String 数组,保存每门课的成绩 -
为每门课创建一个 int 变量,值为这门课的成绩对应的数组的索引,以便操作每门课的成绩 -
实现计算最高成绩的逻辑
public class ScoreArrayMaxScore {
public static void main(String[] args) {
// 声明六个变量, 分别代表六门科目的成绩
int YuWenIndex = 0;
int ShuXueIndex = 1;
int WaiYuIndex = 2;
int WuLiIndex = 3;
int HuaXueIndex = 4;
int ShengWuIndex = 5;
// 每门课的名字
String[] names = new String[6];
names[YuWenIndex] = "语文";
names[ShuXueIndex] = "数学";
names[WaiYuIndex] = "外语";
names[WuLiIndex] = "物理";
names[HuaXueIndex] = "化学";
names[ShengWuIndex] = "生物";
// 每门课的成绩
double[] scores = new double[6];
// 用随机数给成绩赋值
for (int i = 0; i < 6; i++) {
scores[i] = 80 + Math.random() * 20;
}
// 计算最高成绩和最高成绩对应的科目的索引
double maxScore = -1;
int maxScoreIndex = -1;
for (int i = 0; i < 6; i++) {
System.out.println(names[i] + "的成绩为" + scores[i]);
if (maxScore < scores[i]) {
maxScore = scores[i];
maxScoreIndex = i;
}
}
// 输出最高成绩科目和成绩
System.out.println("最高分的科目为" + names[maxScoreIndex] + ",成绩为:" + maxScore);
}
}
「那上面寻找最高分是有缺陷的,因为有可能多个科目和最高分是相同的。这个时候可以再写一个循环,找出和最大值相等的就可以。然后把找到的输出出来。——快试一试哦。」
AI悦创·编程一对一
AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh
C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh


作者介绍
AI悦创
V1
编程一对一教学,微信:Jiabcdefh