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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2012, 20:01   #1
Лилия396
 
Регистрация: 29.02.2012
Сообщений: 5
По умолчанию С++ массивы

Задание :Удалить из массива целых чисел все элементы, являющиеся простыми числами.У меня есть готовая программа:
Код:
#include "stdio.h"
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int mas[10];
	for(int i=0;i<10;i++)
	{
		cin>>mas[i];
	}

	for(int k=1;k<10;k++)
	{
		for(int j=2;j<=mas[k]/2;j++)
		{
		if(mas[k]%j==0)
		{mas[k]=0;
		break;
		}
		}
		
	}
	for(int a=0;a<10;a++)
	{
	cout<<mas[a]<<" ";
	}
return 0;
}
Объясните пожалуйста что тут означает вот эта строка: for(int j=2;j<=mas[k]/2;j++)
и эта: if(mas[k]%j==0)
{mas[k]=0;
break;

Буду очень благодарна

Последний раз редактировалось Stilet; 02.05.2012 в 20:47.
Лилия396 вне форума Ответить с цитированием
Старый 02.05.2012, 20:39   #2
LancX
Пользователь
 
Аватар для LancX
 
Регистрация: 30.04.2012
Сообщений: 52
По умолчанию

for(int j=2;j<=mas[k]/2;j++)

mas[k] - введенные через cin символы в
for(int i=0;i<10;i++)
{
cin>>mas[i];
}

mas[k]/2 - делятся на 2

if(mas[k]%j==0) - к примеру веденное число=20 и шаг второй то есть j=3
получается
if(20%3==0) так как выражение 20%3=2 (3*6=18(целое делимое) + 2(остаток деления)=20)
то выражение mas[k]=0; не отработает
а при j=2
if(20%2==0) 20%2=0
mas[k]=0; - отработает и обнулит проверяемое значение.

А вообще логика программы мне не нравится, она обнуляет непростые числа тоже число 20 взятое к примеру.
http://ru.wikipedia.org/wiki/%D0%9F%...81%D0%BB%D0%B0
При любом расчете, число, правильность которого для всех очевидна, становится источником ошибок.
LancX вне форума Ответить с цитированием
Старый 02.05.2012, 20:53   #3
Лилия396
 
Регистрация: 29.02.2012
Сообщений: 5
По умолчанию

А как будет правильно выглядеть эта программа?
Лилия396 вне форума Ответить с цитированием
Старый 02.05.2012, 21:03   #4
LancX
Пользователь
 
Аватар для LancX
 
Регистрация: 30.04.2012
Сообщений: 52
По умолчанию

Код:
      int proch(int);

		void main()
		{
			int a;
			cout<<"Number: ";
			cin>>a;

			cout<<endl<<endl<<"Result: ";
			proch(a);

			cout<<endl<<endl<<endl;
		}

		int proch(int a)
		{
			int n=0;
			for(int i=2;i<a;i++)
			{
				if(a%i==0)
					n=1;
			}
			if(n==0)
				cout<<"Simple";
			else
				cout<<"Not a simple";
			return 0;
                     }

Функция int proch(int a)
При любом расчете, число, правильность которого для всех очевидна, становится источником ошибок.
LancX вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
указатели на массивы и массивы указателей blacktener Общие вопросы C/C++ 16 13.06.2011 20:45
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12