![]() |
С++
Привет всем....
помогите пожалуйста с прогой #include <stdio.h> main() { int i=14,j=2; printf("\n i++=%d",i++); printf("\n ++i=%d",++i); printf("\n --j=%d",--j); printf("\n i+=4 =%d",i+=4); printf("\n j*=5 %d",j*=5); printf("\n i/=j = %d",i/=j); printf("\n i%%=3=%d",i%=3); i=1; printf("\n i<<1 = %d, i<<2 = %d",i<<1,i<<2); printf("\n i>>3 = %d",i>>3); float f=15.45; printf("\n i=%d ",i=f); } 1)Как написать программу читающую с клавиатуры два числа с плавающей точкой и выводящую на экран максимальное из этих чисел,используя а)оператор if б) операцию ?. 2) Как написать программу,определяющию в байтах размер данных всех типов 3)Как написать программу,читающую с клавиятуры десятичное беззнаковое целое число и выводящую битовое (двоичное) представление данного числа. Возможный алгоритм: Вводим число 15 раз делится на 2 и определяется остаток отделения 0 или 1. Данный остаток и будет представлять один разряд в двоичном представлении. |
А какое имеет отношение к задаче приведенный фрагмент кода сомнительного смысла?
А по условию можно пользоваться std::cin'ом и std::cout'ом? |
1)
#include <stdio.h> void main( void ) { double a, b; scanf("%lf %lf", &a, &b); if(a > b) printf("%lf", a); else printf("%lf", b); } ////////////////////////// #include <stdio.h> void main( void ) { double a, b; scanf("%lf %lf", &a, &b); printf( "%lf", a > b : a ? b ); } 2) #include <stdio.h> int main( void ) { printf("Int - %i\n", sizeof(int)); printf("Char - %i\n", sizeof(char)); printf("Float - %i\n", sizeof(float)); printf("Double - %i\n", sizeof(double)); // Дальнейший алгоритм понятен))) return 0; } 3) // Супер кривая реализация - думать лень #include <stdio.h> int main( void ) { int x, i = 0, j; char y[100]; scanf("%i", &x); while(x != 0) { y[i++] = x % 2 + 48; x /= 2; } for( j = i-1;j >= 0; j--) printf("%c", y[j]); printf("\n"); return 0; } Пишу без компиляции, так что хз, что выйдет.. =) |
а раньше люди сами себе лабы делали...
|
Судя по заданиям, человек тока-тока начал учить С(даж не С++)... Ну, пусть почитает кривенький код:) Да и мне хоть что-то.. А то я со своими базами данных по работе уже .... сам понял...;) Боялся, что такую задачу решить не смогу:)
|
Цитата:
|
А чтобы знать - нужно книжки умные читать. То, что ты спрашиваешь, - это первые пару глав в любой книжке по Си.
3-е задание: Код:
#include <stdio.h> |
Forcer, ну и дела... Рекурсия... Многократные вызовы функций вывода, деление на двойку обычным делением вместо сдвига, остаток остатком вместо конъюнкции. В условии какое-то неясное условие "меньше", вместо проверки на равенство нулю (что оптимизируется компилятором). Да и при том по условию задачи число беззнаковое. Да еще и само деление на двойку вычисляется будь здоров сколько раз. Если уж писать такой плевочек кода - то писать красиво!
|
Решение по себе красивое, хоть в алгоритмических языках стараюсь без рекурсий.. Их идеологически вернее в функциональных использовать..
Но смысл в том, что для новичка в С/С++ это явно будет перебор=) |
Подправил для любой системы счисления + решение через массив.
2dword про сдвиг вначале помнил, а потом забыл :-). Про остаток не понял вообще. Насчет условия - разве имеет значение? число подправил - не заметил. Покажи плиз пример красивого кода :-) P.S. опустил просто по полной :-D |
| Время: 16:07 |