Работа с одномерными массивами при адресации элементов обычным способом - C (СИ)
Формулировка задачи:
Ввести в память машины одномерный целочисленный массив, размером
не менее 30 элементов. Ввод осуществить с клавиатуры.
Посчитать количество всех чисел, сумма цифр которых меньше 10.
Решение задачи: «Работа с одномерными массивами при адресации элементов обычным способом»
textual
Листинг программы
int sum(int n) { int s=0; for(; n; n/=10) s+=n%10; return s; } void main(int argc,char* argv[]) { int i,n,*a,less10; do { printf("n>=30:"); scanf("%d",&n); }while(n<30); a=(int*)malloc(n*sizeof(int)); //в ручную //for(i=0; i<n; i++) //{ // printf("a[%d]=",i); // scanf("%d",a+i); //} //автоматом srand((unsigned)time(0)); for(i=0; i<n; i++) { a[i]=rand()%100; printf("%d ",a[i]); } // less10=0; for(i=0; i<n; i++) if(sum(a[i])<10) less10++; printf("\n\nless than 10=%d\n",less10); free(a); system("pause"); }
Объяснение кода листинга программы
- Функция
sum
принимает целое числоn
и возвращает сумму его цифр. - В функции
main
объявлены переменныеi
,n
,a
иless10
. - В цикле
do-while
пользователю предлагается ввести числоn
не меньше 30. - После выхода из цикла
do-while
выделяется память под массивa
размеромn
с помощью функцииmalloc
. - В комментариях представлен ручной способ заполнения массива
a
значениями, который был заменен на автоматический генератор случайных чисел с помощью функцииrand()
. - С помощью функции
srand
инициируется генератор случайных чисел. - В цикле
for
заполняется массивa
случайными числами от 0 до 99. - Каждое сгенерированное число выводится на экран с помощью функции
printf
. - Переменная
less10
инициализируется нулем и используется для подсчета количества чисел в массивеa
, сумма цифр которых меньше 10. - В цикле
for
происходит проверка каждого элемента массиваa
и увеличение переменнойless10
, если сумма цифр числа меньше 10. - Выводится количество чисел в массиве
a
, сумма цифр которых меньше 10, с помощью функцииprintf
. - Выделяемая память освобождается с помощью функции
free
. - Запускается программа
pause
, которая приостанавливает выполнение программы до нажатия клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д