Выяснить, каких элементов в массиве больше — отрицательных или положительных - C (СИ)
Формулировка задачи:
Ввести с клавиатуры число n. Динамически выделить память для массива целых чисел размером n. Заполнить массив данными с клавиатуры. Выяснить, каких элементов в массиве больше - отрицательных или положительных.
Решение задачи: «Выяснить, каких элементов в массиве больше — отрицательных или положительных»
textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
int main()
{
int *arr; // массив
int n; // размер массива
int countPositive = 0; // количество положительных чисел в массиве
int countNegative = 0; // количество отрицательных
printf("Vvedite razmer massiva: ");
scanf("%d", &n);
arr = calloc( n, sizeof(int) );
for (int i=0; i<n; ++i)
{
printf("-> ");
scanf("%d", &arr[i]);
if (arr[i] >=0 ) ++countPositive;
else ++countNegative;
}
if (countPositive > countNegative)
printf("Positive > Negative\n");
else
printf("Negative > Positive\n");
free(arr);
return 0;
}
Объяснение кода листинга программы
- Объявление переменных:
- arr - указатель на массив (тип int), который будет содержать n целых чисел;
- n - переменная, которая будет хранить размер массива;
- countPositive и countNegative - переменные для подсчета положительных и отрицательных чисел соответственно (тип int).
- Ввод размера массива с клавиатуры.
- Выделение памяти под массив с помощью функции calloc.
- Цикл по всем элементам массива:
- Ввод числа с клавиатуры;
- Если число больше или равно 0, увеличивается countPositive;
- Если число меньше 0, увеличивается countNegative.
- Вывод сообщения о том, каких чисел больше.
- Освобождение памяти, выделенной под массив.
- Возврат 0, чтобы указать, что программа успешно завершилась.