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

Не работает функция по причине temp'a. Не знаю как исправить - C++

Восстановить пароль Регистрация
 
Alex_Reilly
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 26
04.12.2011, 19:09     Не работает функция по причине temp'a. Не знаю как исправить #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Mass_Function_Replace(double massive[], int n)
{ 
double temp;
for(int i =0; i < n-1; i++)
{
if(abs(massive[i])>1)
double temp;
temp = massive[i];
massive[i] = massive[i+1];
massive[i+1] = temp;
}
 
cout <<"\nMassive has been replaced correctly\n";
for (int i = 0; i < n; i ++)
cout <<"\n"<< setw(n) << massive[i] <<endl;
Вот эта функция должна просто сортировать..Но мне пишет что ошибка и вроде в Темпе...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2011, 19:09     Не работает функция по причине temp'a. Не знаю как исправить
Посмотрите здесь:

Ошибка, не знаю как исправить C++
Не знаю как исправить ошибку C++
Конфликты хейдеров,не знаю как исправить C++
C++ Работа со структурой, не знаю как исправить
C++ Error LNK2019 не знаю как исправить
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Smillles7
25 / 25 / 1
Регистрация: 23.04.2011
Сообщений: 130
04.12.2011, 19:11     Не работает функция по причине temp'a. Не знаю как исправить #2
как минимум переопределение temp-а
убери double temp; после if
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
04.12.2011, 19:25     Не работает функция по причине temp'a. Не знаю как исправить #3
Цитата Сообщение от Smillles7 Посмотреть сообщение
как минимум переопределение temp-а
Нет тут переопределения.
Ошибка заключается в том, что скобки не правильно расставлены.
Должно так быть:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Mass_Function_Replace(double massive[], int n)
 { 
 for(int i =0; i < n-1; i++)
         if(abs(massive[i])>1)
                  {
                         double temp;
                         temp = massive[i];
                         massive[i] = massive[i+1];
                         massive[i+1] = temp;
                  }
 
 cout <<"\nMassive has been replaced correctly\n";
 for (int i = 0; i < n; i ++)
 cout <<"\n"<< setw(n) << massive[i] <<endl;
}
Smillles7
25 / 25 / 1
Регистрация: 23.04.2011
Сообщений: 130
04.12.2011, 19:27     Не работает функция по причине temp'a. Не знаю как исправить #4
Цитата Сообщение от Chelioss Посмотреть сообщение
Нет тут переопределения.
если бы отсутствовала скобка, не думаю чтоб компилятор жаловался на temp

Добавлено через 52 секунды
оп....
Не могу понять, как найти сумму
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
04.12.2011, 19:28     Не работает функция по причине temp'a. Не знаю как исправить #5
Цитата Сообщение от Smillles7 Посмотреть сообщение
если бы отсутствовала скобка, не думаю чтоб компилятор жаловался на temp
Компилятор жалуется из-за того, что скобки криво расставлены.
Создавать объекты в разных блоках и с одинаковым именем можно.
Smillles7
25 / 25 / 1
Регистрация: 23.04.2011
Сообщений: 130
04.12.2011, 19:30     Не работает функция по причине temp'a. Не знаю как исправить #6
но скобка все же у него есть)) значит дело не в ней)
ага сказал нет тут переопределения и убрал второй double temp
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
04.12.2011, 19:53     Не работает функция по причине temp'a. Не знаю как исправить #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Mass_Function_Replace(double massive[], int n)
 { 
double temp;
 for(int i =0; i < n-1; i++)
         if(abs(massive[i])>1)
                  {
                         double temp;
                         temp = massive[i];
                         massive[i] = massive[i+1];
                         massive[i+1] = temp;
                  }
 
 cout <<"\nMassive has been replaced correctly\n";
 for (int i = 0; i < n; i ++)
 cout <<"\n"<< setw(n) << massive[i] <<endl;
}
Это же основы. Как такое можно не знать...
Alex_Reilly
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 26
04.12.2011, 19:54  [ТС]     Не работает функция по причине temp'a. Не знаю как исправить #8
Поменял код. На вот этот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void Mass_Function_Replace(double massive[], int n)
{       
    
  
    for (int i = 1; i < n-1; i++)
    {
      if(abs(massive[i])>1)
      {
        int temp;
        temp = massive[i];
        massive[i] = massive[i+1];
        massive[i+1] = temp;
      }
    }
 
 
 
  cout<<"\nThis is your massive now:";
    for (int i = 0; i < n; i ++)
        cout <<"\n"<< setw(n) << massive[i] <<endl;
 
 
}
Теперь при введении: 1, -2, 0.2, 0.3, -3. Он сортирует:1, 0.2, 0.3, -3,-2. Почему единица перед ними????
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
04.12.2011, 19:59     Не работает функция по причине temp'a. Не знаю как исправить #9
Цитата Сообщение от Alex_Reilly Посмотреть сообщение
Вот эта функция должна просто сортировать.
Вы не правильно сортируете.

Добавлено через 44 секунды
Читайте хотя бы http://ru.wikipedia.org/wiki/%D1%EE%...F0%FC%EA%EE%EC
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2011, 20:18     Не работает функция по причине temp'a. Не знаю как исправить
Еще ссылки по теме:

C++ Не знаю как исправить ошыбку в коде
Не знаю как исправить ошыбку в коде C++
C++ По какой-то причине не работает функция

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Alex_Reilly
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 26
04.12.2011, 20:18  [ТС]     Не работает функция по причине temp'a. Не знаю как исправить #10
Ктонибудь поможет или будет на википедию ссылки кидать?
Yandex
Объявления
04.12.2011, 20:18     Не работает функция по причине temp'a. Не знаю как исправить
Ответ Создать тему
Опции темы

Текущее время: 01:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru