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

в чем ошибка? - C++

Восстановить пароль Регистрация
 
 
gyffi
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 11
12.12.2013, 22:16     в чем ошибка? #1
Не выводит минимальное число, пишет 0


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using std::cout;
int main()
{
    int array[5];
    int min=array[0];
    for (int i=0;i<5;i++)
       {
            cout << "input array[" << i << "]: ";
           std::cin >> array[i];
           if (array[i]<min) min=array[i];
        }
   cout << "min= " << min << "\n";
system("pause");
    return 0;
}
Добавлено через 2 минуты
мне кажется что-то не правильно в это строе
C++
1
 int min=array[0];
что нужно написать заметь нуля??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2013, 22:16     в чем ошибка?
Посмотрите здесь:

В чем ошибка? C++
C++ в чем ошибка??
C++ В чем ошибка
В чем ошибка? C++
C++ В чем ошибка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
petyahohlov
27 / 22 / 5
Регистрация: 31.07.2013
Сообщений: 119
12.12.2013, 22:17     в чем ошибка? #2
нужно исправить в твоём коде. или можно свой дать?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,419
12.12.2013, 22:19     в чем ошибка? #3
Цитата Сообщение от gyffi Посмотреть сообщение
int array[5];
* * int min=array[0];
min становится равным случайному числу, которое находится в неинициализированном массиве.
C++
1
min = std::numeric_limits<int>::max();
либо как-то огибать сравнение с первым элементом
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
12.12.2013, 22:20     в чем ошибка? #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int array[5];
    int min=array[0];
    for (int i=0;i<5;i++)
       {
            cout << "input array[" << i << "]: ";
            cin >> array[i];
           if (array[i]<min) min=array[i];
        }
   cout << "min= " << min << "\n";
    system("pause");
    return EXIT_SUCCESS;
}
Doksim
 Аватар для Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
12.12.2013, 22:20     в чем ошибка? #5
Цитата Сообщение от gyffi Посмотреть сообщение
Не выводит минимальное число, пишет 0


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using std::cout;
int main()
{
    int array[5];
    int min=array[0];
    for (int i=0;i<5;i++)
       {
            cout << "input array[" << i << "]: ";
           std::cin >> array[i];
           if (array[i]<min) min=array[i];
        }
   cout << "min= " << min << "\n";
system("pause");
    return 0;
}
Добавлено через 2 минуты
мне кажется что-то не правильно в это строе
C++
1
 int min=array[0];
что нужно написать заметь нуля??
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using std::cout;
int main()
{
    int a;
    cin >> a;
    int min=a;
    for (int i=1;i<5;i++)
       {
            cout << "input array[" << i << "]: ";
           std::cin >> a;
           if (a<min) min=a[i];
        }
   cout << "min= " << min << "\n";
system("pause");
    return 0;
}
petyahohlov
27 / 22 / 5
Регистрация: 31.07.2013
Сообщений: 119
12.12.2013, 22:21     в чем ошибка? #6
или просто сначала записать массив а потом сравнивать
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
12.12.2013, 22:21     в чем ошибка? #7
gyffi, по моему он у тебя это :
C++
1
system("pause");
не хотел воспринимать. По крайней мере выдал мне ошибку в этой строке.
Doksim
 Аватар для Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
12.12.2013, 22:22     в чем ошибка? #8
Цитата Сообщение от Relike Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int array[5];
    int min=array[0];
    for (int i=0;i<5;i++)
       {
            cout << "input array[" << i << "]: ";
            cin >> array[i];
           if (array[i]<min) min=array[i];
        }
   cout << "min= " << min << "\n";
    system("pause");
    return EXIT_SUCCESS;
}
и что вы поменяли?
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
12.12.2013, 22:23     в чем ошибка? #9
Doksim,
C++
1
#include <cstdlib>
теперь по крайней мере всё работает....
Black_Thorn
17 / 17 / 1
Регистрация: 06.12.2012
Сообщений: 46
12.12.2013, 22:26     в чем ошибка? #10
C++
1
min = 0;
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
12.12.2013, 22:28     в чем ошибка? #11
gyffi, и да, не заметил, если вы нулевой элемент массива приняли минимальным, то цикл стоило с единицы начинать!
Doksim
 Аватар для Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
12.12.2013, 22:32     в чем ошибка? #12
Цитата Сообщение от Relike Посмотреть сообщение
gyffi, и да, не заметил, если вы нулевой элемент массива приняли минимальным, то цикл стоило с единицы начинать!
необязательно, со скоростью компа это незаметно.

Добавлено через 1 минуту
Цитата Сообщение от Relike Посмотреть сообщение
Doksim,
C++
1
#include <cstdlib>
теперь по крайней мере всё работает....
у меня и так все работало =/
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
12.12.2013, 22:33     в чем ошибка? #13
Цитата Сообщение от Doksim Посмотреть сообщение
необязательно, со скоростью компа это незаметно.
Всё равно не правильно это.
Цитата Сообщение от Doksim Посмотреть сообщение
у меня и так все работало =/
У меня без этой билиотеки system не воспринимает компилятор.
gyffi
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 11
12.12.2013, 22:40  [ТС]     в чем ошибка? #14
Цитата Сообщение от MrGluck Посмотреть сообщение
min становится равным случайному числу, которое находится в неинициализированном массиве.
C++
1
min = std::numeric_limits<int>::max();
либо как-то огибать сравнение с первым элементом
не очень понимаю min = std::numeric_limits<int>::max(); как бы обходит числа которые в массиве

Добавлено через 6 минут
всем спасибо!!
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
12.12.2013, 22:40     в чем ошибка? #15
Цитата Сообщение от Black_Thorn Посмотреть сообщение
C++
1
min = 0;
для последовательности из целых положительных чисел, текущее число последовательности никогда не будет меньше min(0), результат будет 0.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using std::cout;
 
int main()
{
    int array[5];
    int min;
    for (int i=0;i<5;i++)
    {
        cout << "input array[" << i << "]: ";
        std::cin >> array[i];
    }
 
    min=array[0];
    for (int i=1;i<5;i++)
    {
        if(array[i]<min)
            min=array[i];
    }
    cout << "min= " << min << "\n";
    system("pause");
    return 0;
}
Doksim
 Аватар для Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
12.12.2013, 22:40     в чем ошибка? #16
Цитата Сообщение от Relike Посмотреть сообщение
Всё равно не правильно это.
но простительно)
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
12.12.2013, 22:41     в чем ошибка? #17
Цитата Сообщение от Doksim Посмотреть сообщение
но простительно)
Это уже смотря для чего (кого) вы пишите.
Doksim
 Аватар для Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
12.12.2013, 22:41     в чем ошибка? #18
неужели так сложно решить эту задачу так как я писал на первой странице? столько циклов и массивов..
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
12.12.2013, 22:43     в чем ошибка? #19
Doksim, да я его-же код скопировал, бобавил библиотеку, запустил и он всё правильно делал)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2013, 22:43     в чем ошибка?
Еще ссылки по теме:

C++ В чем ошибка?
В чем ошибка? C++
C++ В чем ошибка?

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

Или воспользуйтесь поиском по форуму:
gyffi
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 11
12.12.2013, 22:43  [ТС]     в чем ошибка? #20
все замечательно,спасибо


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int array[5];
    int  min = numeric_limits<int>::max();
 
    for (int i=0;i<5;i++)
       {
            cout << "input array[" << i << "]: ";
            cin >> array[i];
           if (array[i]<min) min=array[i];
        }
   cout << "min= " << min << "\n";
    system("PAUSE");
    return EXIT_SUCCESS;
}
Yandex
Объявления
12.12.2013, 22:43     в чем ошибка?
Ответ Создать тему
Опции темы

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