اذهب إلى المحتوى
  • 0

خطأ في كود مصفوفة ثنائية البعد في الجافا

Hoida Ahamed

السؤال

package Java;

import java.util.Scanner;
import static java.lang.Math.*;
public class Main {

  public static void main(String[] args) {
  int matrix[][]=new int[row][column];
  Scanner in=new Scanner(System.in);
  System.out.println("Enter"+matrix.length+"row "+matrix[0].length);
  int row =in.nextInt();
  int column=in.nextInt();
  for (int row;row<matrix.length;row++){
    for (int column=0;column<matrix[0].length;column++){
      matrix[row][column]=in.nextInt();
    }
  }
 
for (int row;row<matrix.length;row++){
    for (int column=0;column<matrix[0].length;column++){
     System.out.println( matrix[row][column]);
    }
    System.out.println(" ");
  }

    for (int row = 0; row < matrix.length; row++) {
      for (int column= 0; column < matrix[row].length; column++) {
        matrix[row][column]=((int)Math.random()*100);
      }
    }
    System.out.println("print Data:");
    for (int row = 0; row < matrix.length; row++) {
      for (int column = 0; column < matrix[row].length; column++) {
        System.out.print(matrix[row][column]+" ");
      }
      System.out.println(" ");
    }
    int totel=0;
    for (int row = 0; row < matrix.length; row++) {
      for (int column = 0; column < matrix[row].length; column++) {
      totel+=matrix[row][column];
      }
  }

   for (int column = 0; column < matrix[0].length; column++){
    int total=0;
     for (int row = 0; row < matrix.length; row++)
       total+=matrix[row][column];
       System.out.println("The sum column"+column+"is"+total);
    
   }  
     
  }
}

ماالخطا في هذا البرنامج🤔

تم التعديل في بواسطة Sam Ahw
توضيح السؤال وتنسيق المحتوى
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

هنالك عدد من الأخطاء التي يمكن حلها:

1- تعريف المصفوفة يكون بعد تحديد عدد الصفوف و الأعمدة،

2- الأسماء لا يجب تكرارها في نفس البرنامج، لذا قمت بتعريف r , c بدلاً من row, column اللذان تم إستخدامهما من قبل، مع العلم أنه يمكن إستخدام نفس المتغيرات المعرفة بداخل الحلقة في حلقة أخرى،

3- عمليات الطباعة الأخيرة تكون على مستوى مجموع القيم للصفوف وليس الأعمدة،

4- إستخدام الدالة math.floor هو ما يمكننا من إيجاد قيم أعلى من صفر لملء المصفوفة بالقيم الجديدة،

البرنامج المعدل يكون كالتالي:


import java.util.Scanner;
import static java.lang.Math.*;
public class Main {

  public static void main(String[] args) {
  Scanner in=new Scanner(System.in);
  System.out.print("Enter # of rows ");
  int row =in.nextInt();
  System.out.print("Enter # of columns ");
  int column=in.nextInt();
  int matrix[][]=new int[row][column];
  for (int r=0;r<matrix.length;r++){
    for (int c=0;c<matrix[0].length;c++){
        System.out.print("Enter row # "+(r+1)+" and column # "+(c+1)+": ");
        matrix[r][c]=in.nextInt();
    }
  }
 
  System.out.println("Printing User Elements");
  for (int r=0;r<matrix.length;r++){
    for (int c=0;c<matrix[0].length;c++){
        System.out.print(matrix[r][c]+" ");
    }
    System.out.println(" ");
  }
    System.out.println("Replacing elements with random numbers, done ...");
    for (int r=0;r<matrix.length;r++){
    for (int c=0;c<matrix[0].length;c++){
        matrix[r][c]=((int)Math.floor(Math.random()*100));
      }
    }
    
    System.out.println("Printing ...");
    for (int r=0;r<matrix.length;r++){
    for (int c=0;c<matrix[0].length;c++){
        System.out.print(matrix[r][c]+" ");
      }
      System.out.println(" ");
    }
    
    int total=0;
    for (int r=0;r<matrix.length;r++){
    for (int c=0;c<matrix[0].length;c++){
      total+=matrix[r][c];
      }
    }
    System.out.println("Printing the total of the elements");
  
    
    System.out.println("Printing total by row:");
    for (int r=0;r<matrix.length;r++){
    int subtotal=0;
     for (int c=0;c<matrix[0].length;c++){
       subtotal+=matrix[r][c];
   }  
   System.out.println("The sum of row "+(r+1)+" is " +subtotal);
     
  }
}
}

قمت بإضافة عدد من عبارات الطباعة ليصبح البرنامج مقروء.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...