|
Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке? Тип приложения - не 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;
}