Определить, сколько элементов фиксированного массива занято и сколько свободно - C (СИ)
Формулировка задачи:
Пользователь вводит символы с клавиатуры в фиксированный массив до тех пор, пока не встретится символ ‘z’. Определить, сколько элементов массива теперь занято и сколько свободно. Для работы с массивом и подсчета количества использовать указатели (не использовать переменную для накопления)
Решение задачи: «Определить, сколько элементов фиксированного массива занято и сколько свободно»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define MAX 10
int main()
{
setlocale(LC_ALL,".1251");
char array[MAX];
char* current = array;
for(;current != array+MAX;++current)
{
printf("Введите символ:");
scanf("%c",current);
if(*current == 'z')
break;
fflush(stdin);
}
printf("Заполнено:%d\n",current-array);
printf("Свободно:%d\n",array+MAX-current);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и вводом-выводом
- Установка локали на русскую, для корректного отображения символов
- Объявление фиксированного массива MAX размером 10 элементов
- Создание указателя current, который будет указывать на текущий элемент массива
- Запуск цикла, который будет заполнять массив до тех пор, пока пользователь не введет символ 'z'
- В каждой итерации цикла пользователю предлагается ввести символ, который затем сохраняется в текущем элементе массива
- Если введенный символ равен 'z', то цикл прерывается
- После окончания цикла выводится количество заполненных элементов массива (current-array)
- Выводится количество свободных элементов массива (array+MAX-current), при этом необходимо учесть, что текущий элемент уже занят
- Программа завершается, возвращая 0