Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2012, 21:46   #1
petro.chelsea1234
 
Регистрация: 28.11.2012
Сообщений: 7
По умолчанию Прості числа

Есть массив чисел, мне нужно вывести тот же массив но без простых чисел (вытереть из массива их, но я не знаю как удалять поэтому просто печатаю массив без них), дело в том что я написал функцию которая проверяет число является простым, но когда компилируем у меня печатает те простые числа, как сделать так чтобы печатался массив без простых чисел???


Код:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#define N 20
int PrimeNumber(int number);

int main()
{
	int *mas; //масив
	int i=0;   
	int *p;  //вказівник на початок масиву

	/*mas=(int*)malloc(100*sizeof(int));
	if(mas=NULL){
		printf("\n Nemae takoi pamiati");
	}*/

	printf("\nVvedit chusla\n");
	while(i<N){
		scanf("%d",&mas[i]);
		if(*(mas+i)==0)
			break;
		i++;
	}
	for (int i=0;i<N;i++)
		if (PrimeNumber(mas[i]))
			printf("\n Novui Masuv %d",mas[i]);

	
	
}

int PrimeNumber(int number)
{
	if(number< 2) return 0;
	double I=pow(number+1,0.5);
	I+=1;
	for (int i=2; i<(int)I; i++)
	{
	if (number%i == 0)
		return 0;
	}

	return 1;
}


________
1) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)

2) Официальный язык форума - русский!

Не забывайте об этом!

Модератор.

Последний раз редактировалось petro.chelsea1234; 28.11.2012 в 22:28.
petro.chelsea1234 вне форума Ответить с цитированием
Старый 29.11.2012, 21:18   #2
LynXzp
Пользователь
 
Аватар для LynXzp
 
Регистрация: 04.10.2012
Сообщений: 95
По умолчанию

Цитата:
я не знаю как удалять поэтому просто печатаю массив без них
Если нужно удалить элемент с номером N из массива. Необходимо начиная с элемента N+1 все сдвинуть на одну позицию выше
Код:
for(int i=N+1;i<max;i++)mass[i-1]=mas[i];
max--;//ну и кол-во эл-в уменьшилось на 1

А чтобы вместо только простых печатать только не простые нужно просто обратить условие:
Код:
if (!PrimeNumber(mas[i]))
Пишу на чистом С, плюсы спилил.
LynXzp вне форума Ответить с цитированием
Старый 29.11.2012, 22:58   #3
petro.chelsea1234
 
Регистрация: 28.11.2012
Сообщений: 7
По умолчанию

там mass[] чи mas????
petro.chelsea1234 вне форума Ответить с цитированием
Старый 30.11.2012, 03:31   #4
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Цитата:
там mass[] чи mas????
А голова Вам для чего? И вообще, как это Вы все написали, а отрицание условия написать не додумались?
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 30.11.2012, 19:58   #5
LynXzp
Пользователь
 
Аватар для LynXzp
 
Регистрация: 04.10.2012
Сообщений: 95
По умолчанию

Цитата:
Сообщение от petro.chelsea1234 Посмотреть сообщение
там mass[] чи mas????
одинаковое и там и там должно быть.

Цитата:
Сообщение от Granus Посмотреть сообщение
А голова Вам для чего? И вообще, как это Вы все написали, а отрицание условия написать не додумались?
М.б. другой вариант? =))))))
Пишу на чистом С, плюсы спилил.
LynXzp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи в ТурбоПаскаль: найти числа Армстронга и просуммировать числа в последовательности номера которых простые числа Lena1808 Помощь студентам 1 17.05.2012 08:00
Задані цілі числа від 1 до 100.Надрукувати в порядку зростання усі числа що можна подати у вигляді 7*i*j+j+3, де i,j - цілі числа. Саша513 Паскаль, Turbo Pascal, PascalABC.NET 0 16.05.2012 18:45
VisualBasic.Исключить из числа цифры, стоящие между первой и последней цифрой числа. ride013 Помощь студентам 0 03.05.2011 21:20
Даны натуральные числа n и m. Получить сумму m последних цифр числа n pahanzona Microsoft Office Excel 11 27.02.2011 02:17
Вычислить:у=а*(в*в*в)*с,где а,в,с-двоичные числа.Для хранения числа использ.массив! Таняпервокурсница Помощь студентам 4 04.06.2010 12:08