Нахождение двух наибольших чисел из десяти введённых - C (СИ)
Формулировка задачи:
Найдите из 10 чисел два наибольших значения.
По логике вроде всё сделал правильно. Единственное что, мои условия некоторые игнорируются и выбираются те, которые стоят выше.
например
if ()
{
if ()
{}
Листинг программы
- #include <stdio.h>
- #include <conio.h>
- int main ()
- {
- int i,number, largestone, largesttwo;
- i=1;
- number=0;
- while (i<=10)
- {
- printf ("Vvedite chislo\n");
- scanf ("%d", &number);
- if (i==1)
- {
- largestone=number;
- largesttwo=number;
- printf ("Largestone equals %d, Largesttwo ne vvedeno \n", largestone);
- }
- if (i==2)
- {
- if (number>largestone)
- { largesttwo=largestone;
- largestone=number;
- printf ("Largestone %d, Largesttwo %d\n", largestone, largesttwo);
- }
- else
- if (number=largestone)
- { largesttwo=number;
- printf ("Largestone %d, Largesttwo %d\n", largestone, largesttwo);
- }
- else
- if (number<largestone)
- {
- largesttwo=number;
- printf ("Largestone %d, Largesttwo %d\n", largestone, largesttwo);
- }
- }
- if (i>=3)
- {
- if (number>largestone)
- {
- largesttwo=largestone;
- largestone=number;
- printf ("Largestone %d, Largesttwo %d\n", largestone, largesttwo);
- }
- if (number=largestone)
- {
- largesttwo=number;
- printf ("Largestone %d equals Largesttwo %d\n", largestone, largesttwo);
- }
- if (number<largestone)
- {
- if (number>largesttwo)
- {
- largesttwo=number;
- printf ("Largestone %d, Largesttwo %d\n", largestone, largesttwo);
- }
- if (number=largesttwo)
- {
- printf ("Largestone %d, Largesttwo %d\n", largestone, largesttwo);
- }
- if (number<largesttwo)
- {
- printf ("Largestone %d, Largesttwo %d\n", largestone, largesttwo);
- }
- }
- }
- i++;
- }
- getch ();
- return 0;
- }
else { if }
} То что, жирным - не выполняется, а выполняется лишь верхнее. Прошу помощиРешение задачи: «Нахождение двух наибольших чисел из десяти введённых»
textual
Листинг программы
- #include <iostream>
- #include <vector>
- #include <algorithm>
- const int NUMBER_OF_DIGITS = 10;
- int main()
- {
- std::vector<int> v;
- int x, count = 0;
- while(count++ < NUMBER_OF_DIGITS && std::cin >> x) v.push_back(x);
- std::sort(v.begin(), v.end());
- std::cout << v[NUMBER_OF_DIGITS-1] << ' ' << v[NUMBER_OF_DIGITS-2] << std:: endl ;
- system("pause");
- return 0;
- }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с векторами и алгоритмами
- Объявление константы, определяющей количество вводимых чисел (10)
- Создание пустого вектора для хранения введенных чисел
- Объявление переменной для подсчета количества введенных чисел и инициализация ее значением 0
- Организация цикла, который будет выполняться до тех пор, пока не будет введено 10 чисел или пока не будет введено число, которое не может быть обработано как число
- Добавление каждого введенного числа в вектор
- Сортировка вектора в порядке возрастания
- Вывод на экран двух наибольших чисел из вектора
- Ожидание нажатия клавиши для завершения работы программы
- Возврат значения 0, что означает успешное завершение работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д