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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2010, 18:40   #1
Krumyura
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 36
По умолчанию Непонятное

Посмотрите пожалуйста, что с выводом в case 6 выводит:-6.27744e+066 3)

Код:
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <vector>
#include "windows.h"
#include <math.h>
#define lMas 10 // довжина масиву
using namespace std;

const char * outName = "output.txt";

const double masiv[lMas] = {12, -0.7, 0.5, 3.5, -1, -9, 0.2, -0.2, 0.3, 8};

char* Rus(const char* text);


void init()
{
 cout<<Rus("________________________________________________________________________________");
 cout<<Rus("                              Курсова робота                                    ");
 cout<<Rus("                     на тему: Програма обробки масиву                           ");
 cout<<Rus("                           студента групи К 4-2                                 ");
 cout<<Rus("                             Кримовського Юрiя                                  ");
 cout<<Rus("________________________________________________________________________________");
 cout<<Rus("                                                                                ");
}


int menu()
{
 int vubir;
 cout<<"\n";
    cout<<Rus(" 1.Виконати iнiцiалiзацiю.\n");
    cout<<Rus(" 2.Ввести данi самостiйно.\n");
    cout<<Rus(" 3.Вивести значення масива.\n");
    cout<<Rus(" 4.Визначити номер мiнiмального елемента.\n");
 cout<<Rus(" 5.Cумa елементiв масива розташованих мiж першим та другим\n   негативним елементом.\n");
 cout<<Rus(" 6.Елементи модуль яких не перевищує 1, а потiм всi iншi.\n");
    cout<<Rus(" 7.Вихiд з програми.\n");
 cout<<"\n";
 cout<<Rus("Зробiть свiй вибiр: ");
 cin>> vubir;
 cout<<"\n";
 return vubir;
}

 int n;      
 int i;
 double sum = 0;
 double mi = 999999999.0;
 int f = -1,t = -1,mii;
 vector <double> ms,ansms;
 ofstream fout(outName);


int process()
{
 int vubir = menu();
 switch(vubir) // виконання дії згідно введеного варіанту
 {
  case 1: 
  {
   ms.resize(lMas);
   for(i = 0; i < lMas; i++)
    ms[i] = masiv[i];
   n = lMas;
   cout<<Rus("\n");
   cout<<Rus("________________________________________________________________________________");
   cout<<Rus("\n");
   cout<<Rus("                            Iнiцiалiзацiя виконана\n");
   cout<<Rus("________________________________________________________________________________");
   break;
  }
  case 2: 
  {
   cout << Rus("Введiть длiнну масива:\n");
   cin >> n;
   ms.resize(n); 
   for(i = 0; i < n; i++)
   {
    cout << "ms[" << i + 1 << "] = ";
    cin >> ms[i];
   }
   break;
  }  
  case 3: 
  {
   cout << Rus("Элементи массива:") << endl;
   for(i = 0; i < n; i++)
    cout << "ms[" << i + 1 << "] = " << ms[i] << endl;
   break;
  }
  case 4:
  {
   mi = 9999999.0;
   for(i = 0; i < n; i++)
   {
    if(ms[i] < mi)
    {
     mi = ms[i];
     mii = i + 1;
    }
   }
   fout <<"1) " << " (ms[" << mii << "])" << endl;
   cout<<Rus("________________________________________________________________________________\n");
   cout <<Rus("Номер мiнiмального елемента масиву:  ")<< mii << endl;
   cout<<Rus("________________________________________________________________________________");
   break;
  }
  case 5:
  {
   sum = 0.0;
   for(i = 0; i < n; i++)
    if(ms[i] < 0)
    {
     if(f == -1)
      f = i;
     else if(t == -1)
      t = i;
    }
   for(i = f + 1; i < t; i++)
    sum += ms[i];
   fout <<"2) " << sum << endl;
   cout<<Rus("________________________________________________________________________________\n");
   cout << Rus("Cумa елементiв: " )<< sum << endl;
   cout<<Rus("________________________________________________________________________________");
   break;
  }
  case 6:
  {
   ansms.clear();
   for(i = 0; i < n; i++)
    if(ms[i] <= 1.0 && ms[i] >= -0.9)
     ansms.push_back(ms[i]);
   for(i = 0; i < n; i++)
    if(ms[i] > 1.0 || ms[i] < -0.9)
     ansms.push_back(ms[i]);
	fout << ansms[i] << " ";
	fout <<"3) ";
   cout<<Rus("________________________________________________________________________________\n");
   cout<< Rus("3)Елементи модуль яких не перевищує 1, а потiм всi iншi: ");
   for(i = 0; i < n; i++)
    cout << ansms[i] << " ";
   cout<<Rus("\n");
   cout<<Rus("________________________________________________________________________________");
   break;
  }
  case 7:
  {
   return 1; // виходимо з програми
  }
 }
 return 0;
}

int main()
{
 init();
 while(process() != 1);
}

char bufrus[256];
char* Rus(const char* text){

 CharToOem(text,bufrus);
 return bufrus;}
Krumyura вне форума Ответить с цитированием
Старый 30.03.2010, 21:45   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

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

Код:
mi = 9999999.0;
10 миллионов в реальной жизни - это совсем немного. Нормальный преподаватель попросит Вас переделать без этого "заведомо большого числа".

Код:
if(ms[i] > 1.0 || ms[i] < -0.9)
Это у Вас такой модуль?...

6-ю смотреть не стал. Опять же, нормальный преподаватель велит Вам переделать без использования вспомогательного массива. Лучше сделайте сразу, пока время есть.
Vago вне форума Ответить с цитированием
Старый 30.03.2010, 22:48   #3
Krumyura
Пользователь
 
Регистрация: 03.03.2010
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Vago Посмотреть сообщение
Вообще-то, дабы немного облегчить жизнь тем, кто решится Вам помочь, хорошо бы условие написать, нет?.. Это Вам повезло, что тут рядом Ваша подруга по несчастью страдает...

Код:
mi = 9999999.0;
10 миллионов в реальной жизни - это совсем немного. Нормальный преподаватель попросит Вас переделать без этого "заведомо большого числа".

Код:
if(ms[i] > 1.0 || ms[i] < -0.9)
Это у Вас такой модуль?...

6-ю смотреть не стал. Опять же, нормальный преподаватель велит Вам переделать без использования вспомогательного массива. Лучше сделайте сразу, пока время есть.
Та мне ето все пох))) Мне надо просто что бы выводило в тхт файл нормально и все а то все по барабану)
Krumyura вне форума Ответить с цитированием
Старый 30.03.2010, 22:54   #4
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Тем, которым "пох", я не помощник. Удачи!
Vago вне форума Ответить с цитированием
Старый 30.03.2010, 22:59   #5
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

если честно, то удивлен, что это вообще работает.
а если по теме, то инициализация n происходит только для 1 и 2.
плюс, чему будет равно i на выходе из цикла?

Последний раз редактировалось f.hump; 30.03.2010 в 23:11.
f.hump вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DSPack... непонятное LiaSoft Мультимедиа в Delphi 2 21.03.2010 21:32
Непонятное зависание. DIMANJ Операционные системы общие вопросы 20 18.11.2009 17:08
Непонятное OgE®_M@G Microsoft Office Access 6 13.11.2009 06:30
Непонятное ограничение. SAS888 Microsoft Office Excel 6 07.08.2009 13:20
Что-то непонятное.. Busine2009 Microsoft Office Word 4 10.07.2009 21:44