Работа с одномерными массивами при адресации элементов обычным способом - 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
, которая приостанавливает выполнение программы до нажатия клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д