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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2013, 13:29   #1
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию Не считает минимальный элемент массива.В чем причина ?!

По заданию нужно: найти сумму элементов массива, расположенных до минимального элемента.
Я начал составлять программу с нахождения минимального элемента массива,но почему-то его не хочет выводить.

Код:
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
int a[20], n, i,z,S,min;
cout << " Input N (<=20) ";
cin >> n;
cout <<"\n Massiv A" << endl;
for(i = 0; i < n; i++)
{
cout << " a[ " << i+1 << " ] = ";
cin >> a[i];
}                                            // Ввод массива
for (i=1;i<=n;i++) scanf("%f",&a[i]);
  min =a[1];
   for (i=2;i<=n;i++)
   if  (a[i]<min) min =a[i];
   printf("\n min=%.3f",min);// Нахождение минимального значения массива
getch();
}
spectrum988 вне форума Ответить с цитированием
Старый 28.10.2013, 13:32   #2
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Код:
for (i=1;i<=n;i++) scanf("%f",&a[i]);
зачем если элементы уже введены?

Код:
 printf("\n min=%.3f",min);
числа int, вы выводите как float...
зачем все в кучу? и scanf и cin??
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!

Последний раз редактировалось SaLoKiN; 28.10.2013 в 13:35.
SaLoKiN вне форума Ответить с цитированием
Старый 28.10.2013, 13:32   #3
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Вот
Код:
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
int a[20], n, i,z,S,min;
cout << " Input N (<=20) ";
cin >> n;
cout <<"\n Massiv A" << endl;
for(i = 0; i < n; i++)
{
cout << " a[ " << i+1 << " ] = ";
cin >> a[i];
}                                            // Ввод массива
  min =a[0];
   for (i=1;i<n;i++)
   if  (a[i]<min) min =a[i];

  cout <<" min=  "<< min;;// Нахождение минимального значения массива
getch();
}
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!

Последний раз редактировалось SaLoKiN; 28.10.2013 в 13:35.
SaLoKiN вне форума Ответить с цитированием
Старый 28.10.2013, 13:36   #4
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Код:
for (i=1;i<=n;i++)
Нужно
Код:
for (i=0;i<=n;i++)
т.к. массив считается с 0го элемента, а не с 1го
Дальше нужно все действия взять в фигурные скобки и выкинуть непонятно что, т.е.
Код:
{
  min =0;
   if  (a[i]<a[min])  min =i;
}
В результате у вас есть номер минимального элемента - i. Осталось только просуммировать от 0 до i и вывести результат.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 28.10.2013, 14:02   #5
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

ему не нужно i<=n, он вводит n-элементов,а будет обращаться к n+1...
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Старый 28.10.2013, 15:08   #6
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Цитата:
Сообщение от SaLoKiN Посмотреть сообщение
Вот
Код:
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
int a[20], n, i,z,S,min;
cout << " Input N (<=20) ";
cin >> n;
cout <<"\n Massiv A" << endl;
for(i = 0; i < n; i++)
{
cout << " a[ " << i+1 << " ] = ";
cin >> a[i];
}                                            // Ввод массива
  min =a[0];
   for (i=1;i<n;i++)
   if  (a[i]<min) min =a[i];

  cout <<" min=  "<< min;;// Нахождение минимального значения массива
getch();
}
Спасибо,теперь я разобрался,не могли бы еще помочь с суммой.
spectrum988 вне форума Ответить с цитированием
Старый 28.10.2013, 15:17   #7
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Код:
  min =a[0];
   for (i=0;i<n;i++)
   if  (a[i]<min) min =a[i];
замени на
Код:
  min =0;
   for (i=0;i<n;i++)
   if  (a[i]<a[min])  min =i;
а потом добавь
Код:
for (i=0;i<min;i++)
summ += a[i];
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 28.10.2013, 15:34   #8
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

А без замены,можно же как-то записать ?!
spectrum988 вне форума Ответить с цитированием
Старый 28.10.2013, 16:41   #9
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Цитата:
А без замены,можно же как-то записать ?!
не получится. т.к. вам нужен индекс массива, а не значение, для того чтобы посчитать сумму.
после чего считаем сумму. в итоге получается вот такой код
Код:
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
int a[20], n, i,z,S,min;
cout << " Input N (<=20) ";
cin >> n;
cout <<"\n Massiv A" << endl;
for(i = 0; i < n; i++)
{
cout << " a[ " << i+1 << " ] = ";
cin >> a[i];
}                                            // Ввод массива
  min =0;
   for (i=1;i<n;i++)
   if  (a[i]<a[min]) min =i;
S=0;
for (i=0;i<min;i++)
S += a[i];
cout << "Summa = " << S;

getch();
}
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Старый 28.10.2013, 16:43   #10
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Спасибо большое за помошь!
spectrum988 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поменять местами минимальный и максимальный элемент массива Лераа Паскаль, Turbo Pascal, PascalABC.NET 3 19.12.2012 00:32
Дан массив А [N,N] переставить местами А[1,1] и минимальный элемент массива olegatorka Visual C++ 3 07.11.2012 22:21
Минимальный элемент массива Артемкка Помощь студентам 3 19.12.2011 01:18
Delphi Максимальный и минимальный элемент массива Arden Virth Помощь студентам 1 25.10.2011 11:04
Минимальный элемент массива hoolywood Паскаль, Turbo Pascal, PascalABC.NET 3 30.05.2011 12:21