1D数组,5的倍数。简单但新的编码

时间:2015-10-05 14:48:15

标签: java arrays

  

编写一个程序,在名为Data的数组中分配和存储前20个5的倍数,程序中不能使用其他数组。程序应输出数组的元素,具体如下:

     
      
  1. 仅编写用于在Data
  2. 中分配和存储值的命令   
  3. 输出数组:10个数字/行,每行的总和
  4.   
  5. 输出数组:按相反的顺序,5个数字/行与每行的总和
  6.   
  7. 奇数索引位置值(Data [1],Data [3],Data [5],...),5个值/行及其总和
  8.   
  9. 偶数索引位置值(Data [3],Data [4],Data [6],...),5个值/行及其总和
  10.   

到目前为止,我有第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();

我需要其他人的帮助。

1 个答案:

答案 0 :(得分:1)

正如评论中所说,我们不是来代码,you will lose really important experience about learning how to program

但我可以给你一些可能有助于你的任务的提示。

  
      
  1. 仅编写用于在Data

  2. 中分配和存储值的命令   
  3. 输出数组:10个数字/行,每行总和

  4.   

完成,对吗? ;)

  
      
  1. 输出数组:按相反的顺序,5个数字/行与每行的总和
  2.   

我们现在不会在ArraysCollections的内置函数中说话。
轻松实现:反转数组反转循环:

for(int i=20i>=0;i--){

更好地使用数组长度:

for(int i=data.length-1;i>=0;i--){

要进行增量(例如按5),您可以使用与d[i] += 5相同的d[i] = d[i] + 5a++a = a + 1

你每行需要5个值吗?要知道何时完成一行,请使用modulus or remainder operator %

if (i % 5 == 0)

这意味着,如果i / 5的模数等于0(所以5倍),用它来打印总和和新行(println

  
      
  1. 奇数索引位置值(数据1,数据[3],数据[5],...),5个值/行及其总和
  2.   

请记住此部分i+=2i = i + 2相同;)

  
      
  1. 偶数索引位置值(Data [3],Data [4],Data [6],...),5个值/行及其总和
  2.   

总之,创建一个新变量来存储值 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
 }