2.7 sap xep & chen
ìa tâp: Cho dãy n sô thuc
a) Sap xêp dãy theo thu tu tang dân, giam dân.
b) Chèn vào dãy 1 sô thuc mà không làm thay dôi tính duoc sap cua dãy so.
*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void Nhapdayso(int N, float *a){
if(a != NULL){
printf("Ban hay nhap %d phan tu trong day:
", N);
for(i=0; i<N; i++){
scanf("%f", &a[i]);
}
}
else printf("Kong du bo nho!!!
");
}
void Chenso(int N, float *a){
float X;
printf("
Ban hay nhap so can chen vao day:
");
scanf("%f", &X);
for(i=N-1; i>=0; i--){
if(a[N-1]<=X){
a[N] = X;
break;
}
else{
if(a[i-1]<=X && X<=a[i]){
a[i+1] = a[i];
a[i] = X;
break;
}
else{
a[i+1]= a[i];
}
}
}
printf("Day so sau khi chen la:
");
for(i=0; i<N+1; i++){
printf("%.2f\t", a[i]);
}
}
void Sapxep(int N, float *a){
int i, j, temp;
for(i=0; i<N-1; i++){
for(j=i+1; j<N; j++){
if(a[i]>a[j]){
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
printf("Day so duoc sap xep theo thu tu tang dan la:
");
for(i=0; i<N; i++){
printf("%.2f\t", a[i]);
}
Chenso(N, a);
for(i=0; i<N; i++){
for(j=i+1; j<N+1; j++){
if(a[i]<a[j]){
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
printf("
Day so duoc sap xep theo thu tu giam gian la:
");
for(i=0; i<N+1; i++){
printf("%.2f\t", a[i]);
}
}
main()
{
int N;
float *a;
printf("Ban muon nhap day so co bao nhieu phan tu?
");
scanf("%d", &N);
a = malloc((N+1)*sizeof(float));
Nhapdayso(N, a);
Sapxep(N, a);
getch();
free(a);
return 0;
}
Bạn đang đọc truyện trên: Truyen247.Pro