Читайте также:
|
|
Операции целочисленного деления и нахождения остатка целочисленного деления применяются при необходимости выделения цифр целого числа.
Например, дано четырехзначное натуральное n (abcd). Верно ли, что это число содержит более двух одинаковых цифр?
#include <stdio.h>
#include <conio.h>
int main(){
int n, a, b, c, d;
printf ("input n(abcd):\n");
scanf ("%i", &n);
d = n % 10;
c = n / 10 % 10;
b = n / 100 % 10;
a = n / 1000;
if ( int(a == b)+int(a == c)+ int(a==d)+ int(b==c)+ int(b==d)+ int(c==d) > 1 )
printf ("> 2\n");
else printf ("<=2\n");
_getch();
return 0;
}
Выделение цифр в вещественном числе
Операции целочисленного деления и нахождения остатка целочисленного деления применяются при необходимости выделения цифр дробной части вещественного числа.
Например, определить, есть ли среди первых двух цифр дробной части заданного положительного вещественного числа x=ab. cd, цифра 7.
#include <stdio.h>
#include <conio.h>
int main()
{double x;
int ix, c, d;
printf (" input x(ab.cd):\n");
scanf ("%lf", &x);
ix= static_cast<int>(x*100); //приведение типа double к int
d = ix % 10;
c = ix /10 % 10;
if ((c==7) || (d==7))
printf ("yes\n");
else printf ("no\n");
_getch();
return 0;
}
Арифметические операции над переменными символьного типа
Пример демонстрирует возможность выполнения арифметических операций над переменными символьного типа (прописные буквы переводятся в строчные):
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
char n_reg, v_reg, c;
c='b' + '%' - '!'; //f
cout << c << endl; //102(код 'f') = 98(код 'b')+37(код '%')-33(код'!')
cout << "Input char \'A\' - \'Z\' " <<endl;
cin >> v_reg;
n_reg = v_reg+32; //32 – значение, на которое отдичаются коды
//прописных и строчных латинских букв
cout << v_reg << " " << n_reg << '\n';
_getch();
return 0;
}
Операции инкремента и декремента
тип операции | операция | содержание | примеры |
префиксная | ++x | увеличение значения операнда на 1 до использования его значения | a=1; q = 2* ++a; àa=2; q=4 |
--x | уменьшение значения операнда на 1 до использования его значения | a=1; q = 2* --a; à a=0; q=0 | |
постфиксная | x++ | увеличение значения операнда на 1 после использования его значения | a=1; q= 2*a++; à q=2; a=2; |
x-- | уменьшение значения операнда на 1 после использования его значения | a=1; q= 2*a--; à q=2; a=0 |
Примеры использования:
1. k = a + (i++) – d * (--j); равносильно выполнению операций в следующей последовательности:
--j; k=a + i – d * j; i++;
2. int i=2, j=0;
i++;
cout << i << endl; // 3
--i;
cout << i << endl; // 2
3.
int main()
{ float x=2;
x=++x*4; cout << x << endl; // 12
x=2;
x=x++*4; cout << x << endl; // 9
x=2;
x=--x*4; cout << x << endl; // 4
x=2;
x=x--*4; cout << x << endl; // 7
return 0;
}
4.
int main()
{
int var = 10;
cout << var << endl; // var = 10
var *= 2; // var = 20
cout << var-- << endl; // 20
cout << var << endl; // var = 19
return 0;
}
Правило:
· в случае префиксной операции сначала изменяется значение переменной, перед которой стоит операция, а затем оно используется;
· в случае постфиксной операции сначала используется старое значение переменной, после которой стоит операция, затем оно изменяется;
Дата добавления: 2015-07-08; просмотров: 183 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Арифметические операции | | | Операции присваивания |