1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

одномерный массив

Тема в разделе "С и С++", создана пользователем Olchik, 20 мар 2010.

  1. Olchik

    Olchik Гость

    Репутация:
    0
    помогите,я не знаю в чём ошибка,программа не работает,выдаёт комп.мусор
    нужно найти среднее арифметическое двух наименьших элементов массива

    Код:
    #include<iostream>
    #include<math.h>
    #include<conio.h>
    using namespace std;
    int main()
    {
    int a[5]={5,13,9,7,11},i,min_1,min_2,sr_ar,i_min_1,i_min_2;
    int min=a[0];
    for(i=0;i<5;i++)
    if(a[i]<min)
    {
    min_1=a[i];
    i_min_1=i;
    }
    cout<<"min_1="<<min_1<<endl;
    cout<<"i_min_1="<<i_min_1<<endl;
    min=a[0];
    for(i=0;i<5;i++)
    if(a[i]<min && i!=i_min_1)
    {
    min_2=a[i];
    i_min_2=i;
    }
    cout<<"min_2="<<min_2<<endl;
    cout<<"i_min_2="<<i_min_2<<endl;
    sr_ar=(min_1+min_2)/2;
    cout<<"sr_ar="<<sr_ar<<endl;
    getch ();
    return 0;
    }
     
  2. Odin_KG

    Odin_KG Гость

    Репутация:
    0
    По-моему, у вас второй цикл работает впустую:

    Код:
    min=a[0];
    for(i=0;i<5;i++)
    if(a[i]<min && i!=i_min_1)
    {
    min_2=a[i];
    i_min_2=i;
    }
    У вас при в начале min=5, а значит условие if(a<min && i!=i_min_1) никогда не выполнится, потому что a не может быть меньше, чем 5.
     
  3. Olchik

    Olchik Гость

    Репутация:
    0
    ага..увидела..а как это исправить,чёт я не пойму7
     
  4. Odin_KG

    Odin_KG Гость

    Репутация:
    0
    Легче всего вместо:
    min=a[0];
    написать:
    min=100000000;

    если 100000000 будет самое большое число в массиве , то цикл будет работать верно.
     
  5. Olchik

    Olchik Гость

    Репутация:
    0
    но всё-равно,если исправить на min=100000000, то мин_1=11,а мин_2=7,
    а должно быть 5 и 7
     
  6. Odin_KG

    Odin_KG Гость

    Репутация:
    0
    ну,у вас и в первом цикле та же самая байда:
    int min=a[0];
    поставьте:
    int min=100000000;

    рекомендую научиться пользоваться отладчиком - мне с экрана глазами искать труднее.
     
Загрузка...

Поделиться этой страницей