Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке? Тип приложения - не Qt, Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.
|
Операторы управления
Задача 3.20. Поступает последовательность из вещественных чисел. Определить наибольший элемент последовательности.
Входные данные: — целое число; — вещественное число, определяет текущий элемент последовательности.
Выходные данные: — вещественное число, элемент последовательности с наибольшим значением.
Промежуточные переменные: — параметр цикла, номер вводимого элемента последовательности.
Алгоритм поиска наибольшего элемента в последовательности следующий (рис. 3.31). Вводится — количество элементов последовательности и — первый элемент последовательности. В памяти компьютера отводится ячейка, например с именем , в которой будет храниться наибольший элемент последовательности — максимум. Далее предполагаем, что первый элемент последовательности наибольший и записываем его в . Затем вводим второй элемент последовательности и сравниваем его с предполагаемым максимумом. Если окажется, что второй элемент больше, его записывают в ячейку . В противном случае никаких действий не предпринимаем. Потом переходим к вводу следующего элемента последовательности (), и алгоритм повторяется с начала. В результате в ячейке сохранится элемент последовательности с наибольшим значением9Для поиска наименьшего элемента последовательности (минимума), предполагают, что первый элемент — наименьший, записывают его в ячейку min, а затем среди элементов после-довательности ищут число, значение которого будет меньше чем предполагаемый минимум..
Текст программы на С++:
#include <iostream> using namespace std; int main ( ) { unsigned int i,N; float X,Max; cout<<" N = "; cin>>N; cout<<" X = "; cin>>X; //Ввод первого элемента последовательности //Параметр цикла принимает стартовое значение i =2, т.к. первый элемент //уже введён предположим, что он максимальный, т.е. Max=X. for ( i =2, Max=X; i<=N; i++) { cout<<" X = "; cin>>X; //Ввод следующих элементов последовательности. //Если найдётся элемент, превышающий максимум, записать его в ячейку Max, //теперь он предполагаемый максимум. if (X>Max) Max=X; } //Вывод наибольшего элемента последовательности. cout<<" Max = "<<Max<<" \n "; return 0; }
Задача 3.21. Вводится последовательность целых чисел, 0 — конец последовательности. Найти наименьшее число среди положительных, если таких значений несколько10Предположим вводится последовательность чисел 11, -3, 5, 12, -7, 5, 8,-9, 7, -6, 10, 5, 0. Наименьшим положительным числом является 5. Таких минимумов в последовательности 3., определить, сколько их.
Блок-схема решения задачи приведена на рис. 3.32.
Далее приведён текст подпрограммы с подробными комментариями11Алгоритм поиска максимального (минимального) элементов последовательности подробно описан в задаче 3.20.
#include <iostream> using namespace std; int main ( ) { float N, Min; int K; //Предположим, что в последовательности нет положительных чисел, K=0. //Вводим число и если оно не равно нулю for ( cout<<" N = ", cin>>N,K=0;N!=0; cout<<" N = ", cin>>N) //проверяем является ли оно положительным. if (N>0) //если K=0, поступил 1-й положительный элемент, предположим, что он минимальный. if (K==0) {K=1;Min=N; } //если элемент не первый, сравниваем его с предполагаемым минимумом, //если элемент меньше, записываем его в Min и сбрасываем счётчик else if (N<Min) {Min=N;K=1;} //если элемент равен минимуму, увеличиваем значение счётчика. else if (N==Min) K++; //Конец цикла //Если значение счётчика не равно нулю, печатаем значение //минимального элемента и количество таких элементов. if (K!=0) cout<<" Min = "<<Min<<" \n "<<" K = "<<K<<" \n "; //в противном случае выдаём сообщаем. else cout<<"В последовательности нет положительных элементов \n "; return 0; }