Данная программа производит реверс цифр целого числа, введенного с клавиатуры пользователем.
Задача заключается в том, чтобы, например, число 12345 переписать как 54321.
Текст программы:
#include "stdafx.h"
#include
#include
int _tmain(int argc, _TCHAR* argv[])
{
long int x, r;
printf("\n Enter an integer: ");
scanf_s("%ld", &x);
printf("\n Reverse-digit number %ld:\n\n\t", x);
do {
r = x % 10;
printf(" %ld", r);
x = x / 10;
} while ( x != 0);
printf("\n\n Press any key: ");
_getch();
return 0;
}
В программе применена арифметическая операция деления по модулю, которая имеет символ процента, т. е. «%». Любой остаток, получающийся в результате деления целых чисел, будет отброшен. В шкале старшинства оператор деления по модулю имеет приоритет, равный приоритету операторов умножения и деления. Переменные, используемые в программе, объявлены как длинные числа, поэтому применен тип long int .
Задание для самостоятельной работы:
1. Наберите и запустите приведенный выше пример в среде Visual Studio Express.
2. Модифицируйте программу таким образом, чтобы она выполняла подсчет числа итераций заданного цикла.
3. Определите максимальное число вида 123...987..., для которого еще можно применить тип long int.
1)
Ввод чисел в массив:
program vvod_mass;
var
a: array[1..12] of integer;
i: integer;
begin
for i:=1 to 12 do
begin
write('a[', i, ']='); readln(a[i]);
end;
end.
2)
program otric;
var
a: array[1..10] of integer;
i,n: integer;
begin
randomize;
for i:=1 to 10 do
begin
a[i]:=-10+random(21);
writeln(a[i]);
end;
for i:=1 to 10 do if a[i]<0 then inc(n);
write('Кол-во отрицательных чисел массива: ', n);
end.
3)
program chetniy;
var
a: array[1..8] of integer;
i,n: integer;
begin
randomize;
for i:=1 to 8 do
begin
a[i]:=-10+random(21);
writeln(a[i]);
end;
for i:=1 to 8 do if a[i] mod 2 = 0 then inc(n);
write('Кол-во отрицательных чисел массива: ', n);
end.
1)
program s_parallelogramm;
var
a,h,s: real;
begin
write('Основание = '); readln(a);
write('Высота = '); read(h);
if ((a=0) or (a<0)) or ((h=0) or (h<0)) then writeln('Ошибка! Значения основания и высоты должно быть натуральными числами')
else
begin
s:=a*h;
writeln('Площадь (S) параллелограмма = ', s);
end;
end.
2)
program sp_kvadrata;
var
a,p,s: real;
begin
write('Сторона квадрата = '); readln(a);
p:=4*a;
s:=sqr(a);
writeln('Периметр (P) квадарата = ', p);
writeln('Площадь (S) квадарата = ', s);
end.
3)
program e_kinet;
var
m,v,e: real;
begin
write('Масса тела (m, кг) = '); readln(m);
write('Скорость тела (v, км/ч) = '); readln(v);
e:=m*sqr(v)/2;
writeln('Кинетическая энергия (Ек, Дж) = ', e);
end.
1)
program vivod_chisel;
var
i, a: integer;
begin
a:=11;
for i:=1 to 45 do
begin
write(a:3);
a:=a+2;
end;
end.
2)
program sym_trex_chisel_krat5;
var
mas: array[1..900] of integer;
i,a,sym: integer;
begin
a:=100;
sym:=0;
for i:=1 to 900 do
begin
mas[i]:=a;
if mas[i] mod 5 = 0 then sym:=sym+mas[i];
a:=a+1;
end;
writeln('Сумма трехзначных чисел, кратных 5 = ', sym);
end.