מיון מערך בגודל לא ידוע
#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;
}
היי לכולם, אשמח לעזרה קטנה במיון מערך שגודלו תלוי במשתנה שנקלט וערכיו רנדומליים.
מסיבה שלא ברורה לי, בשלב של המיון, אחד המספרים נמחק ובמקומו יש 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
הקוד שכתבתי בתגובה הראשונה
מסיבה שלא ברורה לי, בשלב של המיון, אחד המספרים נמחק ובמקומו יש 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;
}