الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن احد يقولي وين الخطأ في هذا الكود

مغلق
بدأه CS25 في 31 أكتوبر 2006 · 1 رد · 586 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
public class Hw2 {

	public static void main(String[] args) {

		int n;																  //Is the grid size.		
		  int [][]  spiralPrime = createSpiralPrime(n);										  //Matrix of spiral prime numbers.		 	

		n=Integer.parseInt(args[0]);

		spiralPrime = createSpiralPrime(n);

		largestSumOfPrime(spiralPrime,n);

		 for ( i=0;i<n;i++) 
		   for ( j=0;j<n;j++){
		   		System.out.print("	  "+spiralPrime[j]);
		   		if (j==n-1)
		   		 System.out.print("\n");		   		
		   }  

  }  //End of main.

  /******************************************************************************
 This method retrun array of spiral prime number of size NxN.
  ****************************************************************************/		
		 static int[][] createSpiralPrime (int n) {		  

			int [][] spiralPrime = new int[n][n];
			int i=n/2;
			int j=n/2;
			int k=2;
			int r;
			int t=1;
			int w=1;
			char s='+';

			spiralPrime[j]=1;   

			while (w<=n) {

				switch (s) {

					case '+' : {
									   for (r=1;r<=t;r++)   {
									   	  j++;
										 spiralPrime[j]=k;
									   	  k++;
									   }
									   if (w!=n) {
									   	  for (r=1;r<=t;r++) {
									   		   i--;
									   		  spiralPrime[j]=k;
									   		   k++;
									   	  }
									   }
									   s='-';
									   t++;
									   w++;
								   }

					case '-' : {
									  for (r=1;r<=t;r++) {
										   j--;
										   spiralPrime[j]=k;
										   k++;
									  }					
									  for (r=1;r<=t;r++) {
										  if (k<=n*n) {										  
											  i++;
									   		spiralPrime[j]=k;
									   		k++;
									   	}
									  }
									  s='+';
									  t++;
									  w++;
								  }

				}  //End of switch.

			}  //End of while.

			return spiralPrime;

}  //End of method.

لمن اسوي compile للكود compiler يقول انا ترجمته صحيحه لكن عنده وقت التنفيذ يقولي في خطأ بصراحه ماعرفت وين مكانه ممكن احد يساعدني ويصلحلي الخطأ بالكود هذي الرساله تظهر لي عندنا انقذ البرنامج تقولي عن مكان الخطأ فاتمنى مساعده :

exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 
at Hw2.java .main
at Hw2.java.createSpiralPrime

تم تعديل هذه المشاركة بواسطة CS25 في 31 أكتوبر 2006 في 16:59

#2
 
		largestSumOfPrime(spiralPrime,n);

هذا الاسلوب مش موجود تاكد من r<=t اذا كان صحيح ام لا اقصد =

لست متواجد بشكل يومي

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…