Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Поиск в массиве


Автор: Morgenstern 2.10.2007, 13:00
Задание в общем не сильно трудное, но у меня какую-то фигню выдает. В общем нужно в массиве А[10] найти минимальный элемент и его номер. Вроде же всё просто, так в чём у меня ошибка?

Код

#include<iostream.h>
#include<stdlib.h>


void main()
{
  int a[10];
  int i,x,mini;
  for(i=0; i<10; ++i)
  {
   a[10]=rand();
  }
  mini=0;
  for(i=0; i<10; ++i)
  {   cout<<" "<<a[i]<<endl; }
   cout<<"----------------"<<endl;
  for(i=0; i<10; ++i)
  {
   if (a[i]>a[mini])
   mini=i;
  }
  for(i=0; i<10; ++i)
  { cout<<" "<<a[mini]<<endl;
    cin >> x;}
}


После компиляции получаеться такой загадочный результат:

 
Код

844543893
 0
 0
 4202502
 4199193
 844554353
 0
 4202572
 2147348480
 844745036
------------
 2147348480



И где мне нужно что написать, что бы разделить это на отдельные функции, а потом передать парметры... Очень на вас надеюсь, т.к. уже год как си не изучала - и не помню ничего! smile 

Автор: Rodman 2.10.2007, 13:30
Код

#include<iostream.h>
#include<stdlib.h>

int main(int argc, char* argv[])
{
  int a[10];
  int i,mini;
  randomize();
  for(i=0; i<10; i++)
  {
   a[i]=random(100);
  }
  mini=0;
  for(i=0; i<10; i++)
  {
    if(a[mini]>a[i])
          mini=i;
     cout<<" "<<a[i]<<endl;
  }
  cout<<"----------------"<<endl;
  cout<<" "<<a[mini]<<endl;
  cin >> mini;
}


глянь в своем коде на 11 строку!!!

Автор: vgus 3.10.2007, 22:19
Бог с ним с заполнением массива. А вот вычисление минимального сделано с точностью наоборот.
В 19 строке должно стоять 

   if (a[i]<a[mini]) знак меньше вместо больше.

А так отлично нашлось максимальное значение.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)