Работа с одномерными массивами при адресации элементов обычным способом - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Ввести в память машины одномерный целочисленный массив, размером не менее 30 элементов. Ввод осуществить с клавиатуры. Посчитать количество всех чисел, сумма цифр которых меньше 10.

Решение задачи: «Работа с одномерными массивами при адресации элементов обычным способом»

textual
Листинг программы
  1. int sum(int n)
  2. {
  3.     int s=0;
  4.     for(; n; n/=10) s+=n%10;
  5.     return s;
  6. }
  7. void main(int argc,char* argv[])
  8. {  
  9.     int i,n,*a,less10;
  10.    
  11.     do
  12.     {
  13.         printf("n>=30:");
  14.         scanf("%d",&n);
  15.     }while(n<30);
  16.     a=(int*)malloc(n*sizeof(int));
  17.     //в ручную
  18.     //for(i=0; i<n; i++)
  19.     //{
  20.     //  printf("a[%d]=",i);
  21.     //  scanf("%d",a+i);
  22.     //}
  23.  
  24.     //автоматом
  25.     srand((unsigned)time(0));
  26.     for(i=0; i<n; i++)
  27.     {
  28.         a[i]=rand()%100;
  29.         printf("%d ",a[i]);
  30.     }
  31.     //
  32.  
  33.     less10=0;
  34.     for(i=0; i<n; i++)
  35.         if(sum(a[i])<10) less10++;
  36.     printf("\n\nless than 10=%d\n",less10);
  37.     free(a);
  38.     system("pause");
  39. }

Объяснение кода листинга программы

  1. Функция sum принимает целое число n и возвращает сумму его цифр.
  2. В функции main объявлены переменные i, n, a и less10.
  3. В цикле do-while пользователю предлагается ввести число n не меньше 30.
  4. После выхода из цикла do-while выделяется память под массив a размером n с помощью функции malloc.
  5. В комментариях представлен ручной способ заполнения массива a значениями, который был заменен на автоматический генератор случайных чисел с помощью функции rand().
  6. С помощью функции srand инициируется генератор случайных чисел.
  7. В цикле for заполняется массив a случайными числами от 0 до 99.
  8. Каждое сгенерированное число выводится на экран с помощью функции printf.
  9. Переменная less10 инициализируется нулем и используется для подсчета количества чисел в массиве a, сумма цифр которых меньше 10.
  10. В цикле for происходит проверка каждого элемента массива a и увеличение переменной less10, если сумма цифр числа меньше 10.
  11. Выводится количество чисел в массиве a, сумма цифр которых меньше 10, с помощью функции printf.
  12. Выделяемая память освобождается с помощью функции free.
  13. Запускается программа pause, которая приостанавливает выполнение программы до нажатия клавиши.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы