מיון מערך בגודל לא ידוע

lutcol

New member
מיון מערך בגודל לא ידוע

היי לכולם, אשמח לעזרה קטנה במיון מערך שגודלו תלוי במשתנה שנקלט וערכיו רנדומליים.
מסיבה שלא ברורה לי, בשלב של המיון, אחד המספרים נמחק ובמקומו יש 0 או מינוס מספר גדול מאוד. שאר המספרים מסודרים כמו שצריך.
לדוג':
enter number of cells to array:8
Before sorting: 3 6 7 5 3 5 6 2
After sorting: -1170297744 2 3 3 5 5 6 6
הקוד שכתבתי בתגובה הראשונה​

#include <stdio.h>
#include <stdlib.h>
void move (int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void sort (int a[], int size)
{

int i, temp;
for (i=0;i<size;i++)
{
a= rand() % 10;
}

for (i=0;i<size;i++)
{
printf("%d ",a);
}
printf("\n");
for(int j = 0 ; j<size; j++)
for(i =0 ; i<size ; i++)
{
if(a >a[i+1])
{
move(&a,&a[i+1]);
}
}
for (i=0;i<size ;i++)
{
printf("%d ",a);
}

}

int main()
{

printf("enter number of cells to array:");
int size,m,flag=0,find;
scanf("%d",&size);
int arr[size] ;
sort(arr, size);
return 0;
}
 

selalerer

New member
דיבוג

אתה יכול לעבור עם debugger שלב, שלב ולעקוב אחרי התוכנית שלך. זו מיומנות חשובה שכדאי בכל מקרה ללמוד.
&nbsp
אופציה נוספת: tracing. תכניס מלא הדפסות אחרי כל פעולה שלך. תכתוב שם מה אתה עושה ואת מצב המערך בכל שלב ואז אולי תצליח למצוא בדיוק מתי קורית הבעיה.
 
למעלה