Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке? Тип приложения - не Qt, Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.
|
Использование функций при программировании на C++
Задача 4.3. Вводится последовательность из целых положительных чисел. В каждом числе найти наименьшую и наибольшую цифры3Выделение цифры из числа подробно описано в задаче 3.16.
Программный код к задаче 4.3.
#include <iostream> using namespace std; unsigned int Cmax( unsigned long long int P) { unsigned int max; if (P==0) max=0; for ( int i =1; P!=0;P/=10) { if ( i ==1) {max=P%10; i ++;} if (P%10>max) max=P%10; } return max; } unsigned int Cmin( unsigned long long int P) { unsigned int min; if (P==0) min=0; for ( int i =1; P!=0;P/=10) { if ( i ==1) {min=P%10; i ++;} if (P%10<min ) min=P%10; } return min; } int main ( ) { unsigned int N, k; unsigned long long int X; for ( cout<<"N=", cin >>N, k=1;k<=N; k++) { cout<<"X="; cin >>X; cout<<"Максимальная цифра="<<Cmax(X); cout<<" Минимальная цифра="<<Cmin(X)<<endl; } return 0; }
Задача 4.4. Вводится последовательность целых положительных чисел, 0 — конец последовательности. Определить, сколько в последовательности чисел-палиндромов4Палиндром — любой симметричный относительно своей середины набор символов..
Алгоритм определения палиндрома подробно описан в задаче 3.19. Далее приведён программный код к задаче 4.4
#include <iostream> using namespace std; bool palindrom ( unsigned long long int N) { //Функция определяет, является ли число N палиндромом, возвращает true, если N — //палиндром, и false в противном случае unsigned long int M, R, S; int kol, i; for (R=1, kol =1,M=N;M/10>0; kol ++,R*=10,M/=10); for ( S=0,M=N, i =1; i<=kol; S+=M%10*R,M/=10,R/=10, i ++); if (N==S ) return true; else return false; } int main ( ) { unsigned long long int X; int K; for (K=0, cout<<"X=", cin >>X;X!=0; cout<<"X=", cin >>X) if ( palindrom (X) ) K++; cout<<"Количество палиндромов равно K="<<K<<endl; return 0; }
Задача 4.5. Заданы два числа — в двоичной системе счисления, в системе счисления с основанием пять. Найти сумму этих чисел. Результат вывести в десятичной системе счисления.
Любое целое число , заданное в -ичной системе счисления, можно представить в десятичной системе счисления:
где — основание системы счисления (целое положительное фиксированное число), — разряд числа: Например,Создадим функцию для перевода целого числа , заданного в -ичной системе счисления, в десятичную систему счисления.
#include <iostream> using namespace std; unsigned long long int DecNC( unsigned long long int N, unsigned int b ) { //Функция выполняет перевод числа N, заданного в b-ичной системе счисления, //в десятичную систему счисления unsigned long long int S, P; for ( S=0,P=1;N!=0; S+=N%10*P, P*=b,N/=10); return S; } int main ( ) { unsigned long long int X,Y; unsigned int bX, bY; cout<<"X="; cin >>X; //Ввод числа X. cout<<"b="; cin >>bX; //Ввод основания с/с. cout<<"Y="; cin >>Y; //Ввод числа X. cout<<"b="; cin >>bY; //Ввод основания с/с. //Вывод заданных чисел в десятичной с/с. cout<<X<<"("<<bX<<")="<<DecNC(X, bX)<<" (10) "<<endl; cout<<Y<<"("<<bY<<")="<<DecNC(Y, bY)<<" (10) "<<endl; //Вычисление суммы и вывод результата. cout<<X<<"("<<bX<<")+"<<Y<<"("<<bY<<")="; cout<<DecNC(X, bX)+DecNC(Y, bY)<<" (10) "<<endl; return 0; }