Các anh ơi cho em hỏi sao khi e gộp chương trình như thế này lại chạy sai vậy ạ? viết riêng câu lệnh bài 25 thì vẫn chạy đúng.
//23.sap xep tang dan phan tu am
// va giam dan phan tu duong
#include<stdio.h>
#include<stdlib.h>
void swap(int * a, int * b) {
int temp;
temp = * b;
* b = * a;
* a = temp;
}
void nhap(int * a, int n) {
int i;
for (i = 0; i < n; i++) {
printf("nhap phan tu thu %d: \t", i);
scanf("%d", a + i);
}
}
void xuat(int * a, int n) {
int i;
for (i = 0; i < n; i++)
printf("%5d", *(a + i));
}
void tang(int * a, int n) {
int i, j;
for (i = 0; i < n - 1; i++)
for (j = i + 1; j < n; j++)
if ( * (a + i) > * (a + j))
swap(a + i, a + j);
}
void bai23(int * a, int n) {
int j, i;
for (i = 0; i < n - 1; i++)
for (j = i + 1; j < n; j++) {
if ( * (a + i) < 0 && * (a + j) < 0 && * (a + i) > * (a + j))
swap(a + i, a + j);
if ( * (a + i) >= 0 && * (a + j) >= 0 && * (a + i) < * (a + j))
swap(a + i, a + j);
}
printf("\n mang tang dan cac so am va giam dan cac so duong");
xuat(a, n);
}
void bai24(int * a, int n) //sap xep mang tang dan
{
tang(a, n);
printf("\n mang sap xep theo thu tu tang dan:");
xuat(a, n);
}
int ktnt(int * a) {
int i, dem = 0;
for (i = 1; i <= * a; i++)
if ( * a % i == 0) dem++;
if (dem != 2) return 0;
return 1;
}
void bai25(int * a, int n) //sap xep tang dan cac phan tu nguyen to tang dan va giam dan cacpt k nto
{
int i, j; {
if (ktnt(a + i) == 0 && ktnt(a + j) == 0 && * (a + i) < * (a + j))
swap(a + i, a + j);
if (ktnt(a + i) == 1 && ktnt(a + j) == 1 && * (a + i) > * (a + j))
swap(a + i, a + j);
}
printf("mang cac pt nto tang dan & k nto giam dan:");
xuat(a, n);
}
int main() {
int * a, n;
do {
printf("nhap so phan tu :");
scanf("%d", & n);
} while (n < 1 || n > 100);
a = (int * ) malloc((n + 1) * sizeof(int));
nhap(a, n);
printf("mang ca ban la:");
xuat(a, n);
bai23(a, n);
bai24(a, n);
bai25(a, n);
free(a);
}
//sap xep tang dan cac phan tu nguyen to tang dan va giam dan cac pt k nto
#include<stdio.h>
#include<stdlib.h>
void doicho(int * a, int * b) {
int temp;
temp = * b;
* b = * a;
* a = temp;
}
void nhap(int * a, int n) {
int i;
for (i = 0; i < n; i++) {
printf("nhap phan tu thu %d: \t", i);
scanf("%d", a + i);
}
}
void xuat(int * a, int n) {
int i;
for (i = 0; i < n; i++)
printf("%5d", *(a + i));
}
int ktnt(int * a) {
int dem = 0, i;
for (i = 1; i <= * a; i++)
if ( * a % i == 0)
dem++;
if (dem == 2)
return 1;
return 0;
}
int main() {
int * a, n, j, i;
do {
printf("nhap so phan tu :");
scanf("%d", & n);
} while (n < 1 || n > 100);
a = (int * ) malloc(n * sizeof(int));
nhap(a, n);
xuat(a, n);
for (i = 0; i < n - 1; i++)
for (j = i + 1; j < n; j++) {
if (ktnt(a + i) == 0 && ktnt(a + j) == 0 && * (a + i) < * (a + j))
doicho(a + i, a + j);
if (ktnt(a + i) == 1 && ktnt(a + j) == 1 && * (a + i) > * (a + j))
doicho(a + i, a + j);
}
printf("mang cac pt nto tang dan & k nto giam dan:");
xuat(a, n);
free(a);
}