Определить количество элементов массива, являющихся цифрами - C (СИ)
Формулировка задачи:
Вот такое было задание:Задан символьный массив размера N. Определить количество элементов
массива, являющихся цифрами.
Когда пытаюсь запустить вбиваю 1 символ и программа завершается, не знаю в чем дело =(
#include <stdio.h>
int main(int argc, char *argv[])
{
int N,k;
printf("Vvedite kol-vo elementov: ");
scanf("%d",&N);
if(N<3) {printf("malo!\n"); return 0;}
printf("Vvedite massiv: ");
char arr[N];
for(int i=0;i<N;i++) scanf("%с",&arr[i]);
for(int i=0;i<N;i++)
if (arr[i]==0||1||2||3||4||5||6||7||8||9) k++;
return k;
}Решение задачи: «Определить количество элементов массива, являющихся цифрами»
textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
printf("Vvedite N: \n");
int N;
scanf ("%d", &N);
char a[N+1];
int k = 0;
for (int i = 0; i <= N; i++) {
scanf ("%c", &a[i]);
if (isdigit (a[i])) k++;
}
printf ("%d simvolov - eto tsifry", k);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с вводом/выводом и преобразованием символов.
- Ввод числа N с помощью функции scanf.
- Создание массива a динамического размера, равного N+1, с помощью оператора new.
- Инициализация переменной k, которая будет считать количество цифр.
- Запуск цикла for, который будет считывать каждый символ в массиве a до N.
- Проверка каждого символа с помощью функции isdigit, которая возвращает 1, если символ является цифрой.
- Если символ является цифрой, то увеличиваем значение переменной k на 1.
- Вывод сообщения с количеством цифр в массиве.
- Возвращение 0, что означает успешный конец работы программы.