题目
班级里要搞智力竞赛啦!同学们都踊跃参加。进入最后决赛的是10个同学,随着一道道题目的出示,有时是1号选手得分,有时是5号选手得分,每次答对者得10分,最后结果如何呢?
输入格式:
第一行有十个整数,表示十位同学的初始分。第二行一个整数n,表示有n道题竞赛。
接下去有n行,每行有一个数字x,x表示本次可以加分的选手序号(每次答对者得10分)。
输出格式:
10个同学最终的得分值,每两位同学之间有一个空格。
输入样例:
10 0 0 0 10 10 0 0 0 10
3
1
10
1
输出样例:
30 0 0 0 10 10 0 0 0 20
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//创建数组,放选手分数
int []a = new int[10];
for(int i = 0;i < 10; i++){
a[i] = input.nextInt();
}
//处理一下这个n行,其实好像没什么用
int n = input.nextInt();
//循环处理每道竞赛题
while(input.hasNext()){
int score = input.nextInt();
//初始数组从0开始,所以下标要-1,每道题十分,累加
a[score-1] +=10;
}
//循环遍历数组
for(int i = 0; i < 9; i++){
System.out.printf(a[i]+" ");
}
//格式要求,有换行
System.out.println(a[9]);
}
}
代码详解
思路
1.一维数组存放各选手分数
2.while循环处理每轮竞赛
3.数组遍历
代码点
1.数组从0开始,要与题目的序号对应起来
2.PTA格式要求,一般会把最后一行单独拿出来处理