assault
16-12-2002, 10:53
Hi ,mình có 1 đề bài nhưng lại có 2 bài trả lời,mình thấy phương án 2 phức tạp hơn,nhưng không hiểu ,mong các bạn nào hiểu có thể giải thích dùm.
Thanks
1-----------------
#include <stdio.h>
#define MAX 100
void main()
{
int day[MAX], i, n, j, tam;
printf("\nCho biet so phan tu cua day : ");
scanf("%d", &n);
printf("Nhap vao cac phan tu : ");
for (i=0; i<n; i++)
scanf("%d", &day[i]);
for (i=0; i<n-1; i++)
for (j=i+1; j<n; j++)
if (day[j] < day[i])
{
tam = day[i];
day[i] = day[j];
day[j] = tam;
}
printf("\nSau khi sap xep : ");
for (i=0; i<n; i++)
printf("%d ", day[i]);
getch();
}
2------------------
#include <stdio.h>
#include <mem.h>
#define MAX 100
void main()
{
int day[MAX], n, i, j, tam;
printf("\nCho biet so phan tu cua day : ");
scanf("%d", &n);
printf("Nhap vao cac phan tu : ");
for (i=0; i<n; i++)
{
scanf("%d", &tam);
j = 0;
while (j<i && day[j]<tam)
j++;
if (j<i)
memmove(&day[j+1], &day[j], (i-j)*sizeof(int));
day[j] = tam;
}
printf("\nSau khi nhap : ");
for (i=0; i<n; i++)
printf("%d ", day[i]);
getch();
}
Thanks
1-----------------
#include <stdio.h>
#define MAX 100
void main()
{
int day[MAX], i, n, j, tam;
printf("\nCho biet so phan tu cua day : ");
scanf("%d", &n);
printf("Nhap vao cac phan tu : ");
for (i=0; i<n; i++)
scanf("%d", &day[i]);
for (i=0; i<n-1; i++)
for (j=i+1; j<n; j++)
if (day[j] < day[i])
{
tam = day[i];
day[i] = day[j];
day[j] = tam;
}
printf("\nSau khi sap xep : ");
for (i=0; i<n; i++)
printf("%d ", day[i]);
getch();
}
2------------------
#include <stdio.h>
#include <mem.h>
#define MAX 100
void main()
{
int day[MAX], n, i, j, tam;
printf("\nCho biet so phan tu cua day : ");
scanf("%d", &n);
printf("Nhap vao cac phan tu : ");
for (i=0; i<n; i++)
{
scanf("%d", &tam);
j = 0;
while (j<i && day[j]<tam)
j++;
if (j<i)
memmove(&day[j+1], &day[j], (i-j)*sizeof(int));
day[j] = tam;
}
printf("\nSau khi nhap : ");
for (i=0; i<n; i++)
printf("%d ", day[i]);
getch();
}