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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Одномерные массивы, поиск минимального элемента 
V
    Опции темы
18652tasha
  Дата 18.1.2009, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 Почему программа выводит 256 ?
Как это исправить?
Задача звучит так 
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) номер минимального по модулю элемента массива;

Код

//---------------------------------------------------------------------------

#include <stdio.h> 
#include <conio.h> 
#include <iostream.h> 
#include <math.h>
void main() 
{
int n=10;
int i;
float A[]={0,4,5,-2,3,1,6,8,9,-6};
int Min = 0;
for(int i = 0; i < n; i++)
{

    if(fabs(A[i]) < A[Min])
    {
        Min = i;
    }
}
cout <<"i ="<<i<<""; 
 system( "PAUSE" );
}

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


любитель
****


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

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



Цитата(18652tasha @  18.1.2009,  20:45 Найти цитируемый пост)
1) номер минимального по модулю элемента массива;

cout <<"Min ="<<Min;   smile

Цитата(18652tasha @  18.1.2009,  20:45 Найти цитируемый пост)
Почему программа выводит 256 ?

Выводит "мусорное" значение i;
у Вас два раза определено i, один раз вначале main() другой в цикле - это две разные переменные с одинаковым именем.
Выводит значение первой, а она не инициализирована. (ее вобще надо убрать)

Это сообщение отредактировал(а) mes - 18.1.2009, 22:01


--------------------
PM MAIL WWW   Вверх
18652tasha
Дата 18.1.2009, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо mes все заработало, буду разбираться дальше
PM MAIL   Вверх
mes
Дата 18.1.2009, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



кстати (так на всякий случай) в вашем цикле слишком много скобок, 
можно записать короче и имхо наглядней,

ну и главное: в условии забыт один fabs :
Код

for (int i = 0; i < n; ++i)
 if (fabs(A[i]) < fabs(A[Min])) Min = i;
    


Это сообщение отредактировал(а) mes - 18.1.2009, 22:30


--------------------
PM MAIL WWW   Вверх
mes
Дата 19.1.2009, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



и вот еще что (на будущее) :
Цитата(18652tasha @  18.1.2009,  20:45 Найти цитируемый пост)
int n=10;
float A[]={0,4,5,-2,3,1,6,8,9,-6};

n и размер массива никак логически не связаны - это не очень красиво.




--------------------
PM MAIL WWW   Вверх
bsa
Дата 19.1.2009, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(mes @ 19.1.2009,  00:19)
n и размер массива никак логически не связаны - это не очень красиво.

18652tasha, можно сделать так:
Код
float A[]={0,4,5,-2,3,1,6,8,9,-6};
const int n = sizeof(A) / sizeof(*A);
Это "автоматическое" определение размера массива, определенного через [].

Это сообщение отредактировал(а) bsa - 19.1.2009, 01:32
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.