Выяснить, есть ли среди элементов массива простые числа (нужны комментарии) - C (СИ)

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

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

Задан целочисленный массив размерностью N. Есть ли среди элементов массива простые числа? Если да, то вывести номера этих элемент
Листинг программы
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <stdlib.h>
  4. int simple(int x)
  5. {
  6. int i;
  7. for(i=2;i<=x/2;i++)
  8. if((x%i)==0)
  9. return 0;
  10. return 1;
  11. }
  12. int main()
  13. {
  14. srand(time(NULL));
  15. int i,size;
  16. printf("Enter array size: ");
  17. scanf("%d",&size);
  18. int arr[size];
  19. //fill array!
  20. for(i=0;i<size;i++)
  21. {
  22. arr[i] = rand()%100+1;
  23. if(simple(arr[i]))
  24. printf("%d ",arr[i]);
  25. }
  26. printf("\n");
  27. return 0;
  28. }

Решение задачи: «Выяснить, есть ли среди элементов массива простые числа (нужны комментарии)»

textual
Листинг программы
  1. int simple(int x)
  2. {
  3. int i;
  4. for(i=2;i<=x/2;i++)
  5. if((x%i)==0)
  6. return 0;
  7. return 1;
  8. }
  9.  
  10. int main()
  11. {
  12. srand(time(NULL));//будем использовать для заполнения массива рандомными числами
  13. int i,size;
  14. printf("Enter array size: ");
  15. scanf("%d",&size);//ввод размера массива
  16. int arr[size];
  17. //fill array!
  18. for(i=0;i<size;i++)
  19. {
  20. arr[i] = rand()%100+1;//то самое, про строку srand(time(NULL));
  21. if(simple(arr[i]))//вызов функции int simple(int x) которая говорит, (x%i)==0 или нет
  22. //если да - вернет 0, если нет вернет 1
  23. printf("%d ",arr[i]);//печатает-не печатает значение элемента массива в зависимости от возвращаемого int simple(int x)
  24. }
  25. printf("\n");
  26. return 0;
  27. }

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

В этом коде:

  1. int simple(int x) - это функция, которая проверяет, является ли число x простым. Она итерирует от 2 до x/2 и проверяет, делится ли x на какое-либо из этих чисел без остатка. Если делится, то возвращает 0 (число не простое), если не делится, то возвращает 1 (число простое).
  2. int main() - это функция, которая запрашивает у пользователя размер массива, заполняет этот массив случайными числами с помощью функции rand() и функции simple().
  3. printf(%d ,arr[i]); - это печать значения элемента массива arr[i] в консоль. Если функция simple() вернула 0, то есть arr[i] не является простым числом, то это значение не будет напечатано.
  4. printf(\n); - это печать символа новой строки, который обычно используется для перехода на новую строку в консоли.
  5. return 0; - это оператор, который указывает на успешный конец работы функции. В контексте int main(), это означает, что программа успешно завершилась.
  6. srand(time(NULL)); - это функция, которая инициализирует генератор случайных чисел текущим временем. Это делается для того, чтобы каждый раз при запуске программы генерировались разные случайные числа.
  7. scanf(%d,&size); - это функция, которая запрашивает у пользователя ввод целого числа и сохраняет его в переменной size.
  8. int arr[size]; - это объявление массива arr с размерностью size.
  9. for(i=0;i<size;i++) - это цикл, который проходит по всем элементам массива arr.
  10. arr[i] = rand()%100+1; - это присваивание случайного числа элементу массива arr[i]. Функция rand() генерирует случайное число, а оператор % возвращает остаток от деления этого числа на 100, чтобы получить число от 1 до 100.
  11. if(simple(arr[i])) - это проверка, является ли число arr[i] простым, с помощью функции simple(). Если число не является простым, то условие истинно, и программа не печатает значение этого числа.
  12. printf(%d ,arr[i]); - это печать значения элемента массива arr[i] в консоль, если число является простым.
  13. printf(\n); - это печать символа новой строки, который обычно используется для перехода на новую строку в консоли.

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


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

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

12   голосов , оценка 4.167 из 5

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

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

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