first version of t4
This commit is contained in:
parent
e7c81c7c16
commit
e40ce553c7
68
task4/main.c
68
task4/main.c
@ -0,0 +1,68 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
int main(void) {
|
||||
int n;
|
||||
printf("Введите размер массива b: ");
|
||||
scanf("%d", &n);
|
||||
|
||||
int *b = (int*) malloc(n * sizeof(int));
|
||||
if (!b) {
|
||||
printf("Ошибка выделения памяти.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Введите %d элементов массива b:\n", n);
|
||||
for (int i = 0; i < n; i++) {
|
||||
scanf("%d", &b[i]);
|
||||
}
|
||||
|
||||
// Определяем количество положительных элементов
|
||||
int count = 0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
if (b[i] > 0) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
// Выделяем память для массива C
|
||||
double *C = (double*) malloc(count * sizeof(double));
|
||||
if (!C) {
|
||||
printf("Ошибка выделения памяти для массива C.\n");
|
||||
free(b);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Заполняем массив C
|
||||
int j = 0;
|
||||
for (int i = 0; i < n; i++) {
|
||||
if (b[i] > 0) {
|
||||
C[j] = sqrt(b[i]) / 5.0;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
// Сортировка массива C методом выбора
|
||||
for (int i = 0; i < count - 1; i++) {
|
||||
int minIndex = i;
|
||||
for (int k = i + 1; k < count; k++) {
|
||||
if (C[k] < C[minIndex])
|
||||
minIndex = k;
|
||||
}
|
||||
// Обмен значениями
|
||||
double temp = C[i];
|
||||
C[i] = C[minIndex];
|
||||
C[minIndex] = temp;
|
||||
}
|
||||
|
||||
printf("Отсортированный массив C:\n");
|
||||
for (int i = 0; i < count; i++) {
|
||||
printf("%f ", C[i]);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
free(b);
|
||||
free(C);
|
||||
return 0;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user