среда, 29 сентября 2010 г.

Пару интерестных мелких задачек по C++


В этом посте хочу расмотреть пару интерестных мелких задач по C++ "для тренировки и лучшего понимания"=)
1)Даны две переменных:
int a = 10;
int b = 25;
поменять значения местами без использование дополнительных переменных.

Задачку можно решить арифметически и с помощью битовых операций:
Арифметически:
a=a+b;
b=a-b;
a=a-b;
Используем битовые операции:
a ^= b ^= a ^= b; 

2) Напишите программу умножения двух чисел ЛЮБЫМ способом. условие только одно - НИГДЕ не использовать оператор *
Так же можно решить арифметически:
double b=8;
double c=2.5;
double a=b/(1/c);

3) Найти большее из 2-х чисел, при этом не использовать if, циклов, вспомогательны переменных, различных функций и т.д.
int a, b, c;
c=(a>b)*a+(b>a)*b;
Я думаю понятно как работает=) если выражение в скобках истенное, то скобка возвращает 1, иначе - 0.

4) B вот еще одна коварная задачка =)
int main()
{
    http: //www.google.com/
    return 0;
}
есть ли в данном коде ошибка(компилятором естественно не пользоваться )) )? Если есть, то какая и как исправить, а если нет, то почему?
Ответ таков:
Перед "www" начинается область комментария, то есть дальнейшая область не учитывается.
А вот "http:" рассматривается как обычная метка. Так что ошибки нет!=)

2 комментария:

  1. Вопрос
    Как правильно написать чтобы запускался гугл через С++ ну или С#

    Богдан

    ОтветитьУдалить
  2. Что значит запускалсяя гугл?

    ОтветитьУдалить