Java 1维数组,5的倍数。坚持了几年。编码新手

Java 1维数组,5的倍数。坚持了几年。编码新手,java,arrays,for-loop,Java,Arrays,For Loop,这是任务: 编写一个程序,分配并存储数组中5的前20个倍数,称为Data,程序中不能使用其他数组。程序应根据以下要求输出阵列的元素: a) 仅编写命令以在数据中分配和存储值 b) 输出数组:10个数字/行,每行的总和 c) 输出数组:按相反顺序,5个数字/行,每行的和 d) 奇数索引位置值(数据[1]、数据[3]、数据[5]、…)、5个值/行及其和 e) 偶数索引位置值(数据[3]、数据[4]、数据[6]、…)、5个值/行及其总和 这是我的代码: //** TASK 4 //a,b i

这是任务:

编写一个程序,分配并存储数组中5的前20个倍数,称为Data,程序中不能使用其他数组。程序应根据以下要求输出阵列的元素:

a) 仅编写命令以在数据中分配和存储值

b) 输出数组:10个数字/行,每行的总和

c) 输出数组:按相反顺序,5个数字/行,每行的和

d) 奇数索引位置值(数据[1]、数据[3]、数据[5]、…)、5个值/行及其和

e) 偶数索引位置值(数据[3]、数据[4]、数据[6]、…)、5个值/行及其总和

这是我的代码:

   //** TASK 4

 //a,b
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();
    System.out.println();
    //c
    int sum2=0;
    for(int i=data.length-2;i>0;i--){
        data[i]+=5;
        sum2+= data[i];
        if(i%5==0)
            System.out.println();
        System.out.print(data[i] + " ");
   }
    System.out.println("sum " + sum2);

    System.out.println();

    //d
   int sum3=0;
   for(int i=1;i<21;i=i+2){
           data[i]=5*i;
           sum3+= data[i];
           if(i%11==0)
            System.out.println();
        System.out.print(data[i] + " ");
    }
    System.out.println("sum " + sum3);
    System.out.println();

   //e
    int sum4=0;
    for(int i=2;i<21;i=i+2){
        data[i]=5*i;
        sum4+= data[i];
        if(i%5==0)
            System.out.println();
        System.out.print(data[i] + " ");
    }
    System.out.println("sum " + sum4);
  • 我不知道如何区分我的a和b代码
(c)

  • 对于c,我在第一行得到了4个数字,我不知道为什么
(d)

  • 我有这个权利
(如适用)

  • 它不允许我每行有5个号码
***我不知道如何计算这项作业中所有部分每行的总和。 我的老师没有教我们如何,也不会帮助我们,我很困惑。请帮忙。我一直想弄明白这件事

  • 他希望从5开始,而不是从0开始

    • 我不会在这里给出答案,作为一项家庭作业,我相信过程比结果更重要。不过,我会尽我所能去做导游

      我注意到的第一件事是这个类在这里非常有用

      正如@Filburt所指出的:试着一次只做一部分

      从a开始:尝试习惯第一个索引是0的事实,然后只需迭代20个元素,并使其值符合您的要求:
      (i+1)*5

      b:这里模数和
      StringBuilder
      很方便。您希望做的是迭代所有
      data[i]
      ,然后将
      data[i]+“”
      附加到字符串生成器,同时设置值的运行总和

      由于您希望每10个条目添加一个总和和一个新行,因此需要知道的是,20个值的
      i%10
      0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9

      因此,当您到达第10个元素时,
      9
      需要将总和添加到
      StringBuilder
      和一个新行字符(
      “\r\n”
      在windows上,
      “\n”
      在Unix/MacOSX上),并将总和设置回0

      最后,您可以简单地打印stringbuilder,瞧

      c:和前面一样,实际上,只是向后迭代,模数为5,继续
      4,3,2,1,0,…
      (意思是你在0上加和)

      d&e:这实际上与b相同,但仅每隔一个条目打印一次,其中
      i%2==1
      i%2==0
      。因此,只要确保在这是真的并且一切正常时只追加到stringbuilder


      希望这能有所帮助,但不要太明显。

      我不知道是否应该发布这篇文章,但还是给你:

          // Part (a)
          int data[] = new int[21];
          for (int i = 1; i < 21; i++){
              data[i]=5*i;
          }
      
          // Part (b)
          int sum=0;
          for(int i = 1; i < 21; i++){
              System.out.print(data[i] + " ");
              sum+= data[i];
      
              if(i%10==0)
              {
                 System.out.println(" Sum: " + sum);
                 sum = 0;
              }
          }
          System.out.println();
      
          // Part (c)
          int sum2=0;
          for(int i = 1; i < 21; i++){
              System.out.print(data[21-i] + " ");
              sum2+= data[21-i];
      
              if(i%5==0)
              {
                  System.out.println(" Sum: " + sum2);
                  sum2 = 0;
              }
          }
          System.out.println();
      
          // Part (d)
          int sum3=0;
          for(int i= 2; i < 22; i = i+2){
              System.out.print(data[i-1] + " ");
              sum3+= data[i-1];
      
              if(i % 10 == 0){
                  System.out.println(" Sum: " + sum3);
                  sum3 = 0;
              }
          }
          System.out.println();
      
          // Part (e)
          int sum4=0;
          for(int i=2;i<21;i=i+2){
              System.out.print(data[i] + " ");
              sum4+= data[i];
      
              if(i % 10==0){
                  System.out.println(" Sum: " + sum4);
                  sum4 = 0;
              }
          }
      
      //第(a)部分
      整数数据[]=新整数[21];
      对于(int i=1;i<21;i++){
      数据[i]=5*i;
      }
      //第(二)部分
      整数和=0;
      对于(int i=1;i<21;i++){
      系统输出打印(数据[i]+“”);
      总和+=数据[i];
      如果(i%10==0)
      {
      System.out.println(“总和:+Sum”);
      总和=0;
      }
      }
      System.out.println();
      //第(三)部分
      int-sum2=0;
      对于(int i=1;i<21;i++){
      系统输出打印(数据[21-i]+“”);
      sum2+=数据[21-i];
      如果(i%5==0)
      {
      System.out.println(“总和:+sum2”);
      sum2=0;
      }
      }
      System.out.println();
      //第(四)部分
      int sum3=0;
      对于(int i=2;i<22;i=i+2){
      系统输出打印(数据[i-1]+“”);
      sum3+=数据[i-1];
      如果(i%10==0){
      系统输出打印项次(“总和:+sum3”);
      sum3=0;
      }
      }
      System.out.println();
      //第(e)部分
      int sum4=0;
      
      对于(int i=2;i@Stefan“询问家庭作业是可以的”。OP并不是在试图掩盖这是家庭作业的事实,这里有一些代码表明已经做了一些努力。也许你只是被错误的假设所阻碍,认为你需要一次性实现a)和b)。如果你只是循序渐进地完成作业,应该不会太难。@Filburt我已经试过了。在它上面停留了一天,而不是i=1…20的
      int[21]
      数组和
      数组,你创建
      int[20]
      数组,在0处开始
      for
      循环,每次迭代用5乘以
      i+1
      。按照大多数标准,它只是更整洁的代码,并且在数组中使用的内存稍微少一些。我还没有学习StringBuilder,所以我对你说的话感到非常困惑。谢谢你的帮助,因为这是一个家庭作业,你是新的编码,然后忘记(现在)<代码> StringBuilder <代码>,但考虑阅读和尝试自己的时候,你可以。您仍然可以使用
      String myString=string1+string2+同样的结果。非常感谢@1587;یفان欢迎您!如果这解决了您的问题,请将答案标记为已接受,这样您的问题就不会出现在未回答的问题中。
      
          100 95 90 85 
          80 75 70 65 60 
          55 50 45 40 35 
          30 25 20 15 10 sum 1045
      
          5 15 25 35 45 
          55 65 75 85 95 sum 500
      
         10 20 30 40 
         50 60 70 80 90 
         100 sum 550
      
          // Part (a)
          int data[] = new int[21];
          for (int i = 1; i < 21; i++){
              data[i]=5*i;
          }
      
          // Part (b)
          int sum=0;
          for(int i = 1; i < 21; i++){
              System.out.print(data[i] + " ");
              sum+= data[i];
      
              if(i%10==0)
              {
                 System.out.println(" Sum: " + sum);
                 sum = 0;
              }
          }
          System.out.println();
      
          // Part (c)
          int sum2=0;
          for(int i = 1; i < 21; i++){
              System.out.print(data[21-i] + " ");
              sum2+= data[21-i];
      
              if(i%5==0)
              {
                  System.out.println(" Sum: " + sum2);
                  sum2 = 0;
              }
          }
          System.out.println();
      
          // Part (d)
          int sum3=0;
          for(int i= 2; i < 22; i = i+2){
              System.out.print(data[i-1] + " ");
              sum3+= data[i-1];
      
              if(i % 10 == 0){
                  System.out.println(" Sum: " + sum3);
                  sum3 = 0;
              }
          }
          System.out.println();
      
          // Part (e)
          int sum4=0;
          for(int i=2;i<21;i=i+2){
              System.out.print(data[i] + " ");
              sum4+= data[i];
      
              if(i % 10==0){
                  System.out.println(" Sum: " + sum4);
                  sum4 = 0;
              }
          }