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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2009, 18:57   #11
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

Вот чуть поправил,никаких принципиальных изменений,так что если что вините не меня...
Код:
#include<iostream>
using namespace std;

struct element
{
	int Value;
	int Number;
};
void wypisz (element * tablica, int size);
void sortiruj(element * tablica, int size);
//---------------------------------------------------------------------------


int main()
{
int n, suma; element pom;
cout << "kolwo elementow:"<<endl;
cin >> n;
cout<<"elementy posl"<<endl;
element *posl=new element [n];
suma=0;
for(int i=0;i<n;i++) {
cin>>posl[i].Value;
posl[i].Number=i+1;
}





int spr = -1;
while (spr == -1) {
int k = 0;
sortiruj(posl,n);
wypisz(posl,n);


int zer = 0;
for (int i = 0; i < n; i++){ // k
suma=suma+posl[i].Value;
if(posl[i].Value != 0) {
k++;
}


}



for (int i = 0; i < n; i++){ //proweriajem na nuli
if(posl[i].Value != 0){
zer++;
}
}

if(zer == 0){

spr = 1;

} else {
cout << "n=" << n << " k=" << k << endl;


if (posl[0].Value>(k-1)){ //prow. punkt 3
cout << "n=" << n << " k=" << k << endl;
spr = 0;
} else {
pom.Value = posl[0].Value+1; //otnimaem i umenszajem
pom.Number=posl[0].Number;
for (int i = 1; i < pom.Value; i++) {
if (posl[i].Value > 0){
cout<<"soedin9em "<<pom.Number<<" s "<<posl[i].Number<<'\n';
posl[i].Value = posl[i].Value-1;
}
}
for (int i = 0; i < n-1; i++){
posl[i] = posl[i+1];
}
n = n-1;
for (int i = 0; i < n; i++){ //prow na nuli
if(posl[i].Value != 0){
zer++;
}
}
if(zer == 0){
cout << "jest2" << endl;
spr = 1;

}
}
}
}

if (spr == 1){
cout << "*** posledowatelnost' graficzna ***" << endl;
if (suma == 2*n-2)
{
cout << "*** Javlaetsia derewom ***" << endl;
}
else
{
cout << "*** nie Javlaetsia derewom ***" << endl;
}
}else{
cout<<"*** nie graficzna ***"<<endl;
}

system("PAUSE");
	return 0;
}
//---------------------------------------------------------------------------
void wypisz (element * tablica, int size)
{
for(int i = 0; i < size; i++) {
cout << tablica[i].Value << " ";
}
cout << endl;
}
void sortiruj(element * tablica, int size)
{
element pom ;
bool rob = true ;
while (rob)
{
rob = false;
for(int a=0 ; a < (size-1); a++)
{
if(tablica[a].Value < tablica[a+1].Value)
{
pom = tablica[a];
tablica[a] = tablica[a+1];
tablica[a+1] = pom;
rob = true;
}
}
}
}
У себя откомпилил,ошибок нет,даже результат как у Вас в примере,тестировал тоже на вашем примере.В одном месте поправил в одном месте индекс
Код:
for (int i = 1; i < pom.Value; i++)
Петли вроде ушли,хотя не очень долго изучал алгоритм,может ещё где-то есть недочеты)
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 15.11.2009, 19:48   #12
Annabel
Пользователь
 
Аватар для Annabel
 
Регистрация: 14.11.2009
Сообщений: 29
По умолчанию

вот оно как...спасибо большое, извиняюсь за неудобство=\
Annabel вне форума Ответить с цитированием
Старый 15.11.2009, 20:09   #13
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

Не за что...Что за смайл?..
Цитата:
=\
Опять что-то не так работает?)...
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 15.11.2009, 23:44   #14
Annabel
Пользователь
 
Аватар для Annabel
 
Регистрация: 14.11.2009
Сообщений: 29
По умолчанию

это как-раз выражение удивления тем, что оно всё-таки может работать как надо
Annabel вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Присвоение имен формам. NSvirus PHP 2 14.10.2009 09:48
Присвоение текста в цикле AvaMight Общие вопросы Delphi 2 16.06.2009 01:23
Присвоение ID artemavd БД в Delphi 2 20.04.2009 14:45
Присвоение значений в ComboBox maxi_mum Помощь студентам 6 09.04.2009 12:48
Присвоение процедур компонентам N!ckeL Компоненты Delphi 4 26.04.2008 18:22