Mickey_from_nsk
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору grekalov Разница "в принципе - не принципиальна", но все таки. Во-первых, тратится чуть больше тактов на интерпретацию % и параметров. Во-вторых, что более важно, с моей т.з., если вы начинаете писать через % и параметры, это предполагает (с моей т.з., опять же), что вы хотите передать переменную в printf. Когда я вижу в параметрах константу, я, так же как и albel, прихожу в легкое недоумение. По поводу приведенного здесь кода, я бы сказал следующее. Работа с целыми числами хороша тем, что позволяет не терять точность, да и арифметика слегка быстрее. Неявные преобразования для функции pow это сводят к нулю. Я бы в этом случае разложил бы степень на произведение. То есть, сделал бы что-то такое. Код: # include <stdio.h> # include <math.h> int main () { int year; long tochn = 100; int count; long principal = 100000; int rate = 5; long amount = principal; int current_percent = 1; printf ("%4s%21s\n", "Year", "Amount on deposit"); for (year = 1; year <= 10; year++) { amount = amount*(100+rate)/100; printf ("%4d: %21ld.%2ld\n", year, amount/100, amount % 100); } return 0; } | В данном коде есть потеря точности, поэтому, поскольку всего 10 итераций, надо работать только на один порядок точнее, то есть изменить long amount = principal*10; и printf ("%4d: %21ld.%2ld\n", year, amount/1000, amount % 1000) |