[السلام عليكم يا اخوانى
فى جزء من مسأله محيرنى انا وزملائى فى الجامعة
المسألة باختصار كالأتى
1- يوجد مصفوفتان بحجم 20 int الحجم ثابت
2-نقوم بوضع اعداد فى كل مصفوفة بحيث ان كل element يحتوى على عدد واحد بمعنى
اذا ادخلنا فى المصفوفه العدد 5198 يوضع كل عدد منهم فى element لواحده ويملا باقى المصفوفة
بأصفار من الشمال اى سندخل الرقم من اخر المصفوفة , وسيكون الناتج كالأتى:
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,1,9,8}ما فكرت به هو ان املا المصفوفة ب أصفار قبل ان ابدأ كالأتى:
int firstNum [20];
int secondNum[20];
for (int i =0; i<20; i++)
{
firstNum=0;
secondNum=0;
}بعد ذلك اقوم بادخال الأرقام وأقوم بتجزئتها بستعمال %10 ووضعها فى أخى المصفوفة
الأن فى كل element رقم واحد
مشكلتى كالأتى وأتمنى من الله ان أجد الحل عندكم
يجب ان أطرح secondNum من firstNum بالشروط التالية
عملية الطرح يجب ان تكون من ال array
انشاء مصفوفة جديده لوضع الناتج بحيث يكون كل element فى المصفوفة يحتوى على عدد واحد
اذا كان الرقم الثانى اكبر من الاول يجب ان نطبع رسالة ان الناتج اقل من الصفر
لقد كتبت الكود ولكنه لا يعمل فى حالة اذا كان الرقم الثانى اكبر من الاول
سوف اشرح الموضوع ثانيا باستخدام كود لكى اوضح الموضوع اكثر
1- الرقم الأول أكبر من الثانى
int num1 = 56458;
int num2 = 35729;
int result[20];
char sign ='+';
لقد قمت بوضع الأصفار كما فى السابق لذلك لن اكتبها ثانيا.
int firstNum[] ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,6,4,5,8};
int secondNum[] ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,5,7,2,9};
___________________________________________________
result ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,7,2,9};2-الرقم الثانى أكبر من الأول
int num1 = 130;
int num2 = 15000;
int result[20];
char sign ='+';
int firstNum[] ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,0};
int secondNum[] ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,5,0,0,0};
_____________________________________________________
result ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,8,7,0};
sign ='-';وهذا ما توصلت اليه حتى الأن
public int[] subtractIntArrays(int array1[] , int array2[])
{
int total=0;
int remainder =0;
int arraySubtract[20];
for(int i=19; i>=0; i--)
{
if ((array1- remainder) - array2<0 )
{
total =(10+array1- remainder) - array2;
arraySubtract=total;
remainder=1;
}
else
{
total =(array1- remainder) - array2;
arraySubtract=total;
remainder = 0;
}
}
return arraySubtract;
}