Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

не работает прога на списки! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ мат.логика. http://www.cyberforum.ru/cpp-beginners/thread207948.html
Здравствуйте! Необходимо на С++ реализовать следующую задачу- Дано множество слов одинаковой длины, первые два из них выделенны.Построить цепь минимальной длины от первого выделенного слова ко...
C++ одновимырний массив В одномерном массиве, который состоит из n действительных элементов, найдите: 1) количество элементов, которое лежит в диапазоне от А к В 2) сумму элементов массива, расположенных после... http://www.cyberforum.ru/cpp-beginners/thread207917.html
C++ арифметическая прогрессия
Дан бинарный файл, содержащий числа а1, b1, a2, b2... Каждая пара чисел a и b определяет числитель и знаменатель натуральной дроби a/b. Проверить, образуют ли дроби арифметическую прогрессию. По...
Упорядочить столбцы матрицы по возрастанию их наименьших элементов C++
Вот ошибки выбивает проверьте пожалуйста. Дана матрица размером NxM. Упорядочить столбцы матрицы по возрастанию их наименьших элементов... #include <iostream.h> #include <iomanip.h> ...
C++ С++ работа с текстом из файла http://www.cyberforum.ru/cpp-beginners/thread207912.html
Народ помогите плиз !!! Надо прочитать текст из файла , для дальнейшей работы с ним (текстом) , т.е. надо записать весь текст в массив , у меня получается записывать в массив только 1 слово из...
C++ Составить функцию, которая, получив любое целое число, преобразует его, поменяв в нем первую и последнюю цифр Ребят..помогите плиззз))вот задачка -не знаю как решить((полазила на форуме нашла похожие,но там без решения((( Составить функцию, которая, получив любое целое число, преобразует его, поменяв в... подробнее

Показать сообщение отдельно
motobiker93
Сообщений: n/a

не работает прога на списки! - C++

10.12.2010, 17:26. Просмотров 281. Ответов 0
Метки (Все метки)

Задача состоит в том чтобы рекурсивно отсортировать список методом выбора мин элемента и перестановки его в начало
#include<stdio.h>
#include<stdlib.h>
struct sp
{
int inf;
struct sp *next;
}*f=NULL;


void poisk(struct sp *p,int coun)
{
struct sp *k=0,*m=f,*l=f,*t=NULL,*pp=NULL,*temp=NULL;
int min=0,ko=0;
while(ko<coun/2) //return ;
//if(ko>=coun/2) return;
{
min=m->inf;
for(t=m;t!=NULL;t=t->next)
{
if(t->inf<min)
{
min=t->inf; k=t;
}

}


if(k->next!=NULL)
{
for(t=m;t->next!=k->next;t=t->next)
pp=t;
temp=k->next;
k->next=m->next;
pp->next=m;
m->next=temp;
m=k;
}
else
if(k->next==NULL)
{

for(t=m;t->next!=NULL;t=t->next)
pp=t;
p->next=m->next;
pp->next=m;
m->next=NULL;
m=p;
}
ko++;
// printf("%d",m->inf);
//printf("\n");
//l=m;
if(ko==1)l->next=m->next;
m=m->next;


//for(t=m;t!=NULL;t=t->next)
//printf("\n %d", t->inf);
//printf(" ");
//poisk(p,coun);
}
f=l->next;
for(t=f;t!=NULL;t=t->next)
printf("\n %d", t->inf);
return ;


}


void main()
{
struct sp *t=0,*p=0,*m=NULL;
int ans=0,check=0, coun=0,min=0;
while(1)
{
printf("\n Dobavite element 1/0 \n");
scanf("%d",&ans);
if(ans==0) break;
t=malloc(sizeof(struct sp));
if(t==NULL)
{
printf("\n ne ydalos videlit pamiat");
break;
}
t->next=NULL;
printf("\n vvedite elementi spiska");
check=scanf("%d",&t->inf);
if(check==0)
{
printf("\n error in statement");
return;
}
if(f==NULL)
{
f=t; p=t;
}
else
{
p->next=t; p=t;
}
}

for(t=f;t!=NULL;t=t->next)
coun++;
m=f;
poisk(p,coun);

// for(t=f;t!=NULL;t=t->next)
// printf("\n %d", t->inf);
for(t=f;t!=NULL;t=f)
{
f=f->next;
free(t);
}

}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru