编写一个程序,在名为Data的数组中分配和存储前20个5的倍数,程序中不能使用其他数组。程序应输出数组的元素,具体如下:
- 仅编写用于在Data
中分配和存储值的命令- 输出数组:10个数字/行,每行的总和
- 输出数组:按相反的顺序,5个数字/行与每行的总和
- 奇数索引位置值(Data [1],Data [3],Data [5],...),5个值/行及其总和
- 偶数索引位置值(Data [3],Data [4],Data [6],...),5个值/行及其总和
醇>
到目前为止,我有第1部分:
int data[]=new int[21]; int sum=0;
for(int i=1;i<21;i++){
data[i]=5*i;
sum+= data[i];
if(i%11==0)
System.out.println();
System.out.print(data[i] + " ");
}
System.out.println("sum " + sum);
int a[]=new int[21];
for(int i=1;i<21;i++){
a[i]=5*i;
//System.out.print(a[i] + " ");
}
System.out.println();
我需要其他人的帮助。
答案 0 :(得分:1)
正如评论中所说,我们不是来代码,you will lose really important experience about learning how to program。
但我可以给你一些可能有助于你的任务的提示。
- 中分配和存储值的命令
仅编写用于在Data
- 醇>
输出数组:10个数字/行,每行总和
完成,对吗? ;)强>
- 输出数组:按相反的顺序,5个数字/行与每行的总和
醇>
我们现在不会在Arrays
或Collections
的内置函数中说话。
轻松实现:反转数组反转循环:
for(int i=20i>=0;i--){
更好地使用数组长度:
for(int i=data.length-1;i>=0;i--){
要进行增量(例如按5),您可以使用与d[i] += 5
相同的d[i] = d[i] + 5
,a++
为a = a + 1
。
你每行需要5个值吗?要知道何时完成一行,请使用modulus or remainder operator %
。
if (i % 5 == 0)
这意味着,如果i / 5的模数等于0(所以5倍),用它来打印总和和新行(println
)
- 奇数索引位置值(数据1,数据[3],数据[5],...),5个值/行及其总和
醇>
请记住此部分:i+=2
与i = i + 2
相同;)
- 偶数索引位置值(Data [3],Data [4],Data [6],...),5个值/行及其总和
醇>
总之,创建一个新变量来存储值 OUTSIDE 循环,并在内部求和:
int total = 0;
for(int i=1;i<21;i++){
total += data[i]; // equals to total = total + data[i]
// more code
if (i % 5 == 0) {
// print total of the line and skip line
// reset total variable total = 0;
}
// more code
}