Удалить из массива целых чисел все элементы, являющихся простыми числами - C (СИ)

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

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

Помогите пожалуйста найти ошибку в программе.Условие задачи:Удалить из массива целых чисел все элементы, являющихся простыми числами. /*program*/
#include <stdio.h>
#include <math.h>
#include <iostream.h>
using namespace std;
void main ()
{unsigned int N,j;
int X[10],b; int i;
bool Pr;
const n=10;
printf(" \n Zapolnite massiv chisel \n");
for (i=0;i<n;i++)
{scanf("%d",&X[i]);}
Pr=true;
for (i=0;i<n;i++)
for (j=2;j<=X[i]/2;j++)
{if (X[i]%j==0) delete X[i];
{Pr=false;
break;}
for (i=0;i<n;i++)
printf ("X[%d]=%d \n",i,X[i]);}
return 0;}

Решение задачи: «Удалить из массива целых чисел все элементы, являющихся простыми числами»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
DeleteElement(int *array, int n);
 
int main (void)
{
    int *array, n, i;
    
    printf ("Введите длину массива : \n");
    scanf ("%d", &n);
    
    array= (int*)malloc(n * sizeof ( int ));
    if (!array||n<1)
    {
        printf ("Ошибка выделения памяти ! ");
        exit (2);
    }
    printf ("Введите элементы массива : ");
    for (i=0; i<n; i++)
        scanf ("%d", &array[i]);
    
    DeleteElement(array,n);
    
    return 0;
}
 
DeleteElement(int *array, int n)
    {
        int i ,j,count;
        
        for (i=0;i<n;i++)
            for (j=2; j<array[i]; j++)
                {
                    count=0;
                    if (array[i]%j==0)
                        count++;
                    if (count == 0)
                        {   
                            for (i=0; i<n;i++)
                            array[i]=array[i+1];
                            n--;
                            i--;
                        }
                }
    for (i=0; i<n; i++)
        printf ("%d ", array[i]);
    printf ("\n");
    }

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

В этом коде:

  1. Создается функция DeleteElement, которая принимает два аргумента: указатель на массив целых чисел и его длину.
  2. Внутри функции происходит обход каждого элемента массива.
  3. Для каждого элемента выполняется проверка на простоту: перебираются все числа от 2 до array[i] и проверяется, делится ли array[i] на какое-либо из них без остатка.
  4. Если делителей не найдено, элемент считается простым и удаляется из массива путем перестановки элементов, начиная с текущего индекса.
  5. В конце функции происходит вывод массива на экран.
  6. В функции main создается массив целых чисел, выделяется память под него и считываются его элементы.
  7. Затем вызывается функция DeleteElement для удаления простых чисел из массива.
  8. В конце программы выводится сообщение об успешном завершении.

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


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

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

7   голосов , оценка 4.143 из 5
Похожие ответы