Нахождение двух наибольших чисел из десяти введённых - 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, что означает успешное завершение работы программы