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