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

Сортировка слиянием(1 сорт список+2 сорт список=3 сорт список) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Усложненный массив http://www.cyberforum.ru/cpp-beginners/thread133545.html
Пусть задана действительная квадратная матрица, размером n на n. Определить произведение элементов, стоящих выше главной диагонали. Среди этих элементов определить минимальный отрицательный элемент и его координаты. Если таких элементов нет на дисплей, вывести сообщение : " Отрицательных элементов нет ". Вот все что удалось сделать, но считает оно не так как нужно... Помогите доделать, голова...
C++ Программа использует несколько раз вычисление биномиального коэфициента Программу по вычислению бином. коэф. я в принципе написала. Но проблема в том, что мне дальше надо по алгоритму на определённое значение уменьшать параметры n и k и снова вычислять бином. коэф.. Не могу разобраться как использовать уже написанную программу, с функцией для вычисления бином. коэф.. Разъясните, пожалуйста, как можно подключить программу по вычислению биномиального коэффициента в... http://www.cyberforum.ru/cpp-beginners/thread133534.html
Передать аргументы и ключи C++
Мне нужно чтобы вызывать прогу из консоли так: proga -f file.txt так получатеся что в argv - -f argv - file.txt а если ключей будет много и в люббом порядке? как эамутить?
C++ Решение простейших задач на Турбо C++
Ребята, вот столкнулся с нахождением решения данных задач. Очень нужна ваша помощь. А задачки такого типа: 1. Дано произвольное число X. Вычислить и вывести на экран Y=ln X, если Х имеет положительное значение. В остальных случаях вывести сообщения "логарифм нуля не существует" или "логарифм отрицательного числа не существует" в зависимости от значения X. 2. Вычислить сумму с заданной...
C++ копирующий конструктор и иерархия http://www.cyberforum.ru/cpp-beginners/thread133507.html
Создать иерархию типов, описывающую - студента, отца семейства и студента-отца семейства. Классы должны конструкторы, включая конструктор копирования, виртуальные деструкторы, перегруженные функции вывода в поток и ввода в поток. т.е. программа как я понимаю будет типа class Father {public: father(string name, int childnumb)} class student {public: student(string name, int curs)} ...
C++ Помогите разобраться что не работает Вот собственно код программки из книги Харви Дейтела подробнее

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

Сортировка слиянием(1 сорт список+2 сорт список=3 сорт список) - C++

22.05.2010, 00:24. Просмотров 465. Ответов 0
Метки (Все метки)

Помогите найти ошибку уже замучалсо, итак прога:
Написать программу, составляющую по трем символьным файлам линейные упорядоченные по длине слов списки и функцию объединения списков.
Выдать объединенный список на экран.

Функцию объединения списков такую чтобы, 3 список был отсортирован слиянием по первым двум (как понимаете только это сделать не получается)

Язык С

неправильно работает функции PLNODE merge, помогите плизз

вот кот:

Код
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<string.h>
#define SIZE_OF_STRING 1000
#define SIZE_OF_word 100

typedef struct node //структура,экземпляр, указатель
{
   char str[SIZE_OF_word];
   struct node *next;
}LNODE,*PLNODE;

PLNODE merge(PLNODE *top1,PLNODE *top2,PLNODE *top3) //обьединяем 3 списка в один
{     
   PLNODE cur3=*top3;
   PLNODE cur=*top1;
   PLNODE cur2=*top2;

   int len_pre;
   int len_new;

   PLNODE newp;
    
   for( ; ; )
   {
       if((cur!=NULL))
           len_pre=strlen(cur->str);
       if((cur==NULL) && ((cur2!=NULL)))
           len_pre=len_new+1;

       if((cur2!=NULL))
           len_new=strlen(cur2->str);
       if((cur2==NULL) && ((cur!=NULL)))
           len_new=len_pre+1;

        

       if((cur==NULL) && (cur2==NULL)){
           return *top3;
       }

       if((len_pre!=0 && len_new==0)) {
           cur2=cur2->next;
           len_new=strlen(cur2->str);
       }
       if((len_pre==0 && len_new==0)) {
           cur=cur->next;
           cur2=cur2->next;
           len_pre=strlen(cur->str);
           len_new=strlen(cur2->str);
       }

       if((len_pre>len_new)) {
           if(*top3!=NULL) {
               *top3=cur2;
               cur3=*top3;
               cur3=cur3->next;
           }
           if(*top3==NULL) {
               *top3=cur2;
               cur3=*top3;
               cur3=cur3->next;
           }     
            
        
           cur2=cur2->next;
       }
       else {
           if(*top3!=NULL) {
               *top3=cur;
               cur3=*top3;
               cur3=cur3->next;
           }

           if(*top3==NULL) {
               *top3=cur;
               cur3=*top3;
               cur3=cur3->next;
           }

           cur=cur->next;
       }
   }
}

void main(void)
{
   FILE *file1;
   FILE *file2;
   
   file1=fopen("D:/abc.txt","rt");
   PLNODE top1;
...

   file2=fopen("D:/def.txt","rt");
   PLNODE top2;
...

   printf("\nlists 1+2\n===================\n");
    
   PLNODE top_1_2,topmerge=NULL,topmerge2=NULL;
   top_1_2=merge(&top1,&top2,&topmerge);

}
большую часть программы снес, оставил основу там где ошибка, помогите найти плиз
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru