IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Найти наибольший общий делитель всех элементов массива, Помогите найти ошибку
сообщение
Сообщение #21


Пионер
**

Группа: Пользователи
Сообщений: 79
Пол: Мужской

Репутация: -  0  +


Цитата(Krjuger @ 1.06.2012 16:00) *

Ты в загадки с нами играешь что ли?Нам все равно и гадать нет нужны.

Может вам и форум этот не нужен? Зачем вы вообще здесь тусуетесь? Зачем он таким профи?

Цитата(Krjuger @ 1.06.2012 16:00) *

То что ты сделал не сработает на тесте а=10 б=0,оно выдаст 10.Так что думай дальше.


Вообще-то, согласно определению о НОД имеет место быть следующие равенства:
НОД(a, b) = НОД(b, a),
НОД(a, b) = НОД(-a, b)
НОД(a, 0) = |a|

Следовательно, НОД (10, 0) = |10| = 10. (0 делится на 10 и 10 делится на 10 без остатка).

Источник привести или сам найдешь? rolleyes.gif

Кстати, зная как таким образом вычислить НОД можно легко узнать наименьшее общее кратное wink.gif

Сообщение отредактировано: Shmaniche -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Цитата
Может вам и форум этот не нужен? Зачем вы вообще здесь тусуетесь? Зачем он таким профи?

Если ты спрашиваеш,то спрашивай,а слова "догадайтесь сами" может произнести учитель ,давший своим студентам неполное решение. Увы,но вам пока что в роли учителя не выступать. И да вы не поняли,о чем я вам писал.Окей распишу поподробней.

// 1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <conio.h>
#include <stdlib.h>
#include <time.h>
const int N=5;

int NOD_Function(int a, int b); // Объявляем функцию вычисления НОД.


int NOD_Function(int a, int b)
{
if (b==0) // Если второе число равно 0.
{return a; } // Вернуть значение первого.
else // Иначе
{ return NOD_Function(b, a%b); } // Вернуть значение функции НОД, используя рекурретность.
}

int main()
{
int mass[N]={4, -4, 8, 16, 32}; // Объявляем массив.
int i, g, h, x, temp, NOD;
bool minus,flag;
NOD=mass[0];
/* srand(unsigned(time(NULL))); // Запуск генератора случайных чисел. */
printf("\n Massiv iz 5 elementov: \n");
for(i=0; i<N; i++)
{
/* mass[i]=rand()%10+1; */
printf("\n Mass[%d] = %d. ", i, mass[i]);
}

for(i=1; i<N; i++)
{
NOD=NOD_Function(NOD, mass[i]);
}
printf("\n \n NOD = %d. \n", NOD);
}


Я предположил,что вы использовали предыдущие наработки.Вот что получилось.

Кстати, на будущее, выкладываете полный код,потому что гадать, что у вас "скрывается за занавесом" никто не станет.
Как вам видно массив у нас 4, -4, 8, 16, 32 // Объявляем массив.
В ответе мы получаем число -4, что есть неверно.Надеюсь понятно почему??
Тоже самое мы получим при 4, 2, 8, -2, 32, в результате -2

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Пионер
**

Группа: Пользователи
Сообщений: 79
Пол: Мужской

Репутация: -  0  +


Цитата(Krjuger @ 1.06.2012 17:21) *

Если ты спрашиваеш,то спрашивай,а слова "догадайтесь сами" может произнести учитель ,давший своим студентам неполное решение. Увы,но вам пока что в роли учителя не выступать. И да вы не поняли,о чем я вам писал.Окей распишу поподробней.


Так я спрашиваю! Но прежде чем получить внятный ответ получаю такие выпады, что моя задача банальна, что желающих помочь здесь нет и вообще я глухой!

Цитата(Krjuger @ 1.06.2012 17:21) *

Кстати, на будущее, выкладываете полный код,потому что гадать, что у вас "скрывается за занавесом" никто не станет.


Но вы же тут профи. Можете и сами догадаться куда какой фрагмент кода вставлять.

Кстати зачем вы в приведеном выше коде объявили "bool minus,flag" и "int g, h, x, temp", когда они нигде не испльзуются?

В данной программе как оказывается не задано рассматривать числа меньше 0, хотя по желаню можно и рассмотреть.

Сообщение отредактировано: Shmaniche -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Цитата
Так я спрашиваю!

Может я не знаю русского языка,но "догадайтесь сами" это ниразу не вопрос.Либо это очередная попытка взять на слабо,либо это снизхождение,дескать, я кое-что сделал,а вы уж сами додумайте.
Цитата
Но вы же тут профи. Можете и сами догадаться куда какой фрагмент кода вставлять.

Слушайте,гадание на кофейной гуще это самое неблагодарное дело.
Например вы скидываете кусок программы и говорите, не работает.Ее дописывают до полноценной программы и она,о чудо, отрабатывает.Выясняется, что ошибка происходит у вас раньше,а другой человек написал все верно,или вы сделали какой нибудь хитрый финт ушами и все получается наоборот.
Цитата
Кстати зачем вы в приведеном выше коде объявили "bool minus,flag" и "int g, h, x, temp", когда они нигде не испльзуются?

Я просто скопировал из одного из предыдущих постов.
Цитата
В данной программе как оказывается не задано рассматривать числа меньше 0, хотя по желаню можно и рассмотреть.

Мне то откуда об этом знать.Вы задачу ставите.
Цитата
Но прежде чем получить внятный ответ получаю такие выпады, что моя задача банальна, что желающих помочь здесь нет и вообще я глухой!

Это не выпады,просто есть категория людей,которая приходит на форум и требует,чтобы им решили.Чаще всего таких людей просто игнорируют.
Как вы заметили,здесь форум и, как на большинстве форумов, помощ здесь абсолютно добровольная.
Вы попросили помощи,вам помогли,затем вы создали новую тему ,где "затем мне предложили другой вариант решения, который мне показался интереснее". По сути вы наплевали на труд того человека и теперь хотите,чтобы он помог вам исполнить вашу прихоть.Он вас вежливо послал искать при помощи дебага.Это одно из неотемлемых умений программиста.Вы же на это отреагировали "а слабо".Отсуда к вам и пошло такое отношение.
Вот если бы вы полазили с дебагом и сказали,у меня вот тут ошибка , не знаю как исправить, помогите,это одно. Вы же сказали,вот код, он не работает, давайте правьте,то есть сами ищите где ошибка,а это самое неблагодарное занятие.За подобное редко беруться.
За такое могут взяться,только если заинтересует сама задача,но извините, НОД замусолен уже до дыр, вот поэтому он и банален.
Про глухого вам никто не говорил,но вы как минимум несколько раз проигнорировали то,что я вам писал про ближайшее к среднему арифметическому.

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #25


Пионер
**

Группа: Пользователи
Сообщений: 79
Пол: Мужской

Репутация: -  0  +


Цитата(Krjuger @ 1.06.2012 18:31) *

Вы попросили помощи,вам помогли,затем вы создали новую тему ,где "затем мне предложили другой вариант решения, который мне показался интереснее". По сути вы наплевали на труд того человека и теперь хотите,чтобы он помог вам исполнить вашу прихоть.


1. Не прихоть, а просьба. 2. Труд уважаю, но если я для себя нашел вариант лучше это не значит, что я наплевал на труд собеседника. Просто в конкретно моем случае другое решение оказалось интереснее.

Цитата(Krjuger @ 1.06.2012 18:31) *


Вот если бы вы полазили с дебагом и сказали,у меня вот тут ошибка , не знаю как исправить, помогите,это одно.


А кто привел краткую функцию вычисление НОД в итоге? Пусть и только для положительных чисел? Кстати отсюда следует функция вычисления НОК:

int NOK_Function(int a, int b)
{
if (b==0) // Если последнее число равно 0,
{ printf ("\n \n Oshibka! V massive nayden 0"); // то вывести сообщение "Ошибка! В массиве найден 0".
return 0; } // Функция возврещает 0.
else
{ return a/NOD_Function(a, b)*b; } // Возвращаем значение а деленое на функцию НОД умноженное на b.
}



Цитата(Krjuger @ 1.06.2012 18:31) *

Про глухого вам никто не говорил,но вы как минимум несколько раз проигнорировали то,что я вам писал про ближайшее к среднему арифметическому.


Если я еще не ответил по той теме это еще не значит, что я глух или проигноировал ваши рекомендации. Это значит, что решение данной задачи оставил на потом, либо она уже не актуальна.

И хватит уже офтипить!

Сообщение отредактировано: Shmaniche -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 16:27
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name