C/C++

Си!!! БЕЗ УКАЗАТЕЛЕЙ, ЯЗЫК СИ

Составьте программу формирования из массива A(N) двух массивов, в которых первый массив заполнен четными, а во второй-нечётным элементами. И отсортировать первый-по возрастанию, второй-по убыванию. БЕЗ УКАЗАТЕЛЕЙ, ЯЗЫК СИ
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
#define N 10
int A[N], Even[N], Odd[N];
int i, j, tmp;
int even = 0, odd = 0;

srand(time(0));
for(i = 0; i < N; i++)
{
A[i] = -5 + rand() % 11;
printf("%d ", A[i]);
} printf("\n");

for(i = 0; i < N; i++)
if(A[i] % 2 == 0)
Even[even++] = A[i];
else
Odd[odd++] = A[i];

for(i = 0; i < even - 1; i++)
for(j = i + 1; j < even; j++)
if(Even[i] > Even[j])
{
tmp = Even[i];
Even[i] = Even[j];
Even[j] = tmp;
}

for(i = 0; i < odd - 1; i++)
for(j = i + 1; j < odd; j++)
if(Odd[i] < Odd[j])
{
tmp = Odd[i];
Odd[i] = Odd[j];
Odd[j] = tmp;
}

for(i = 0; i < even; i++)
printf("%d ", Even[i]);
printf("\n");

for(i = 0; i < odd; i++)
printf("%d ", Odd[i]);
printf("\n");

printf("Press Enter key for continue...");
getchar(); /*getchar();*/
return 0;
}
Юрий Кулиш
Юрий Кулиш
11 953
Лучший ответ
Сергей Логачев извините не могли бы вы мне помочь. в задаче необходимо упорядочить элементы во второй строке по убыванию. а у меня никак не идет по убыванию. не могли бы вы найти ошибку?

#define RAND(min, max) (rand() % ((max) - (min)) + (min))
#define N 9
void main() {
int x = 10, y = 99;
int a[N][N];
int i, j,k=0;
srand((unsigned)time(NULL));
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) {
a[i][j] = RAND(x, y);
}
}
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) printf("%3i", a[i][j]);
puts("");
}
puts("");
for (i = 0; i < N; ++i) {
for (j = 0; j+1 < N; ++j)
if(a[2][j]>a[2][j+1])
{
k=a[2][j];
a[2][j]=a[2][j+1];
a[2][j+1]=a[2][j];
}
}
for (i = 0; i < N; ++i) {
for (j = 0; j < N; ++j) printf("%3i", a[i][j]);
puts("");
}
}
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
#define SWAP(a, b) { int t = a; a = b; b = t; }
#define N 15
void ascending(int* box, int len) {
int i, n;
do {
n = 0;
for (i = 1; i < len; ++i) {
if (box[i - 1] > box[i]) {
SWAP(box[i - 1], box[i]);
n = i;
}
}
len = n;
} while (len);
}
void descending(int* box, int len) {
int i, n;
do {
n = 0;
for (i = 1; i < len; ++i) {
if (box[i - 1] < box[i]) {
SWAP(box[i - 1], box[i]);
n = i;
}
}
len = n;
} while (len);
}
int main(void) {
int a[N], b[N], c[N];
int i, j, k;
int x = -99, y = 100;
int nb = 0, nc = 0;
srand((unsigned)time(NULL));
for (i = 0; i < N; ++i) a[i] = RAND(x, y);
for (i = 0; i < N; ++i) printf("%5i", a[i]);
puts("");
for (i = j = k = 0; i < N; ++i) {
if (a[i] < 0) b[j++] = a[i];
else c[k++] = a[i];
}
nb = j;
nc = k;
descending(b, nb);
for (i = 0; i < nb; ++i) printf("%5i", b[i]);
puts("");
ascending(c, nc);
for (i = 0; i < nc; ++i) printf("%5i", c[i]);
puts("");
return 0;
}
Adel Khan
Adel Khan
79 603