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