السلام عليكم ورحمة الله وبركاته
حبيت اضيف هذا الكود بسبب انه في شباب كثير طلبوه مني واعتذر عن التأخير فحبيت اني انزله في المنتدى ليستفيد منه الجميع
وفكرته كان زي ما كان مطلوب في السؤال وهوا اعادة ترتيب الـ array ولكن اغلب الشباب لعبو فقط في الاوت بوت بدون ما يغيرو موقع الاعداد وهذا يعتبر خطأ
لانه ممكن يطلب منك ان تعمل عملية حسابية او شي معين بعد ما تحذف الاصفار زي ماهو مطلوب في السؤال
وهذا الكود ونبدأ على بركة الله
كود:
#include <stdio.h>
main()
{
int size, T[50], i, j, temp, z=0; // z >>>لنضع فيها كم صفر موجود في الاري
printf("enter the size of the array> ");
scanf("%d", &size);
for (i=0 ; i<size ; i++)
{
printf("enter the number %d > ",i+1);
scanf("%d", &T[i]);
}
for(i=0 ; i<size ; i++) // للبحث في الاري عن الاصفار
{
if(T[i]==0)
z++;
}
for(j=0 ; j<z ; j++) // في هذا الوب نقوم باعادة اللوب الداخلية بعدد مرات الصفر لانه لو كان هنالك صفرين بجانب بعض فما راح يكون الحل صحيح اتمنى انكم تشيلو هذا اللوب وتجربوا البرنامج وتحطو في القيم صفرين او اكثر ورا بعض وراح تفهمو فكرة اللوب هذا
{
for(i=0 ; i<size ; i++) // نقوم بترتيب الاري ووضع الاصفار في النهاية
{
if(T[i]==0)
{
temp=T[i];
T[i]=T[i+1];
T[i+1]=temp;
}
}
}
printf("\n-----------------------\n");
for (i=0 ; i<(size-z) ; i++)
{
printf("T[%d]=%d\n",i, T[i]);
}
return(0);
}
واتمنى انه يكون الكود مفهوم للجميع واذا في اي استفسار انا في الخدمة