Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рушится программа, Сортировка массивов 
:(
    Опции темы
Garcian
Дата 23.12.2008, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.11.2008

Репутация: нет
Всего: нет



Здравствуйте! У Меня была задача урорядочить елементы 2х массивов в порядке: первый эл-т к последнему, втрой к предпоследнему. Я это реализовал:
Код

#include <fstream.h>
#include <iostream.h>
#include <math.h>
#include <conio.h>
int Mas ( int *A, int *B, int *C, int n){
    for (int i = 0; i<n; i++){ 
    if (i==0) {*(C+i) = *(A+i); *(C+1) = *(B+n-1); 
    }
    else {*(C + 2*i ) = *(A + i);
    *(C +2*i+1 ) = *(B + n - i-1);}
    } 
}

int Inp (int *A, int *B,  int n/*, ifstream *R*/){
    ifstream f;
    f.open("C:\\Dev-Cpp\\LB5vhod.txt", ios::in);
    /*if(f){
          if(f.eof()){
                      cout << "Net el-v!";
                      getch();
                      exit(1);
                      }
          int m1;
          f >> m1;
          n = m1;
          if (f.eof())  //åñëè êîíåö ôàéëà - òî âûâîä ñîîáùåíèÿ îá îøèáêå è çàâåðøåíèå ïðîãðàììû
                {
                        cout << "Ne hvataet elementov!" << endl;  //âûâîä ñîîáùåíèÿ îá îøèáêå
                        getch();  //ïàóçà, ÷òîáû ìîæíî áûëî ïðî÷èòàòü ñîîáùåíèå îá îøèáêå
                        exit(1);   //çàâåðøåíèå îñíîâíîé ôóíêöèè main
                }
          }            
     */         
    
    for (int i = 0; i<n; i++) {f >> *(A+i);}
    for (int i = 0; i<n; i++) {f >> *(B+i);}
    f.close();
}

int File (int *A, int *B, int *C, int n, ofstream *R){
   
    *R << "Por9doK: "<<endl;
    for (int i = 0; i<2*n; i++) {
   
    *R<< *(C+i) << ' '<<endl; }          }

int main () {
int n = 5;
int A[5], B[5], C[10];
int i;

ofstream R;
R.open ("C:\\Dev-Cpp\\Lab5.txt", ios::out);
Inp (&A[0], &B[0], n);
Mas (&A[0], &B[0], &C[0], n);
File ( &A[0], &B[0], &C[0], n, &R);

}
              

собственно, проблема возникла, когда попросили сделать проверку (вводили в программу меньше 9 элементов или вообще ничего не вводили - программа рушалась). Я пробовал выполнить проверку, сумел только на 0 (и то при нормальном вводе прога перестала работать). Помогите с выводом в файл, пожалуйста smile !

Модератор: Пожалуйста, один топик - один вопрос.

Это сообщение отредактировал(а) bsa - 25.12.2008, 12:42
--------------------
Неродивый студент
PM MAIL   Вверх
Garcian
Дата 24.12.2008, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.11.2008

Репутация: нет
Всего: нет



Есть идеи??? smile  smile 
--------------------
Неродивый студент
PM MAIL   Вверх
Garcian
Дата 24.12.2008, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.11.2008

Репутация: нет
Всего: нет



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

Это сообщение отредактировал(а) Garcian - 24.12.2008, 21:45
--------------------
Неродивый студент
PM MAIL   Вверх
bsa
Дата 25.12.2008, 12:47 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Garcian, как твоя программа узнает, сколько данных она загрузила? Функция Inp() теряет эту информацию. Как ты можешь сортировать что-то дальше, когда не знаешь сколько сортировать?

Более того, ты написал какое-то странное условие задачи. Первый элемент чего, к последнему чему?

PM   Вверх
Снежанна
Дата 25.12.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.12.2008

Репутация: нет
Всего: нет



Напишу подробнее (видимо он забыл дописать). Даны два массива А и В размерностью N. Сформировать массив С размерностью 2*N так, чтобы элементы массивов А и В выводились в следующем порядке:
А1, Вn, А2, Bn-1, ..., An, B1. 

Это сообщение отредактировал(а) Снежанна - 25.12.2008, 21:30
PM MAIL   Вверх
Rififi
Дата 25.12.2008, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 3
Всего: 36



Снежанна, 
Даны два массива А и В размерностью N. Сформировать массив С размерностью 2*N так, чтобы элементы массивов А и В выводились в следующем порядке:
А1, Вn, А2, Bn-1, ..., An, B1.  


Код
template <typename T, const size_t N>
void merge(const T (&arr1)[N], const T (&arr2)[N], T (&arr3)[N*2])
{
    for (size_t i=0; i<N; i++)
    {
        arr3[i*2 + 0] = arr1[i];
        arr3[i*2 + 1] = arr2[N-i-1];
    }
}

int main()
{
    const size_t N = 4;
    int A[N] = {1, 2, 3, 4};
    int B[N] = {5, 6, 7, 8};
    int C[2*N] = {0};

    merge(A, B, C);
    return (0);
}

PM MAIL   Вверх
Снежанна
Дата 25.12.2008, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.12.2008

Репутация: нет
Всего: нет



Rififi, 
его проблема заключалась не в этом!) С программой у него все хорошо, только на пустой файл не проверяется и на меньшее число элементов!
PM MAIL   Вверх
Garcian
Дата 25.12.2008, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 5.11.2008

Репутация: нет
Всего: нет



Снежанна, спасибо, конечно, но я мог бы и сам свою проблему описать smile 
--------------------
Неродивый студент
PM MAIL   Вверх
bsa
Дата 29.12.2008, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(Garcian @ 25.12.2008,  21:34)
Снежанна, спасибо, конечно, но я мог бы и сам свою проблему описать smile

А почему ты сразу этого не сделал?
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.