كيفية عكس صفيف بشكل متكرر في لغة C
في هذا البرنامج التعليمي ، نريد ترميز وظيفة انعكاس الصفيف بشكل متكرر. اتضح أن الطريقة العودية أكثر صعوبة مقارنة بالتكرارية ، لكن البرنامج العودية أكثر رسمية.
بادئ ذي بدء ، نحتاج إلى تحديد حالات العودية. أولا ، تحتاج إلى كتابة برنامج الطريقة التكرارية لفهم.
بادئ ذي بدء ، نحتاج إلى تحديد حالات العودية. أولا ، تحتاج إلى كتابة برنامج الطريقة التكرارية لفهم.
< / div >< div class = "فاصل" النمط = "واضح: كلاهما ؛ محاذاة النص: الوسط؛" >
< / a>< / div>
يشرح هذا الشكل في ثلاث خطوات عملية التقليب بين نمط i ونمط n-i, تتكرر العملية حتى يتم الوصول إلى نصف طول اللوحة. يتعين علينا تكرار العملية فقط في النصف الأول من المصفوفة وإلا فسنقوم بتبديل عناصر النصف الثاني بعناصر النصف الأول التي تمت معالجتها بالفعل ، وهناك نعود إلى مصفوفة البداية الخاصة بنا.
تقوم التعليمات البرمجية التالية بتبديل صفيف بالطريقة التكرارية:
< pre class = "prettyprint lang-c">#include< كونيو.ه> < فرع />#include< stdio.h>
int main()
{
int i,n,temp;
printf ("حجم الصفيف") ؛
scanf("٪d",& n);
int t[n];
for(i=0; أنا< n; i++)
{
printf("t[٪d]=",i);
scanf("٪d",& t[i]);
}
i = 0 ؛
بينما (i< n/2)
{
temp = t[i];
//n-1 لأن الصفيف يبدأ ب 0
t[i]=t[n-1-i];
t [n-1-i] = temp;
i++;
}
printf("\nالجدول العكسي: \n");
for(i=0; أنا< n; i++)
{
printf("\nt[٪d]=٪d",i,t[i]);
}
getch ();
}
تنفيذ هذا الرمز يعطي:

يشرح هذا الشكل في ثلاث خطوات عملية التقليب بين نمط i ونمط n-i, تتكرر العملية حتى يتم الوصول إلى نصف طول اللوحة. يتعين علينا تكرار العملية فقط في النصف الأول من المصفوفة وإلا فسنقوم بتبديل عناصر النصف الثاني بعناصر النصف الأول التي تمت معالجتها بالفعل ، وهناك نعود إلى مصفوفة البداية الخاصة بنا.
تقوم التعليمات البرمجية التالية بتبديل صفيف بالطريقة التكرارية:
< pre class = "prettyprint lang-c">#include< كونيو.ه> < فرع />#include< stdio.h>
int main()
{
int i,n,temp;
printf ("حجم الصفيف") ؛
scanf("٪d",& n);
int t[n];
for(i=0; أنا< n; i++)
{
printf("t[٪d]=",i);
scanf("٪d",& t[i]);
}
i = 0 ؛
بينما (i< n/2)
{
temp = t[i];
//n-1 لأن الصفيف يبدأ ب 0
t[i]=t[n-1-i];
t [n-1-i] = temp;
i++;
}
printf("\nالجدول العكسي: \n");
for(i=0; أنا< n; i++)
{
printf("\nt[٪d]=٪d",i,t[i]);
}
getch ();
}
تنفيذ هذا الرمز يعطي: