Как правильно заменить cout, чтобы получилась программа на чистом Си - C (СИ)
Формулировка задачи:
Нужно переписать этот код, чтобы числое Си получилось, помогите, пожалуйста, куча ошибок вылазит..
int big_printer(const big_number a){ big_number d,de,acop,r; big_copy(a,&acop); to_big(10,&d); unsigned int k[10241]; int t; t=0; while(big_is_zero(acop)==0){ big_div(acop,d,&r,&de); k[t]=de.num[0]; big_div(acop,d,&de,&r); big_copy(de,&acop); t++; } if(a.sign!=1){ cout<<"-"; } for(int i=t;i>=1;i--){ cout<<k[i-1]; } cout<<endl; return 0; }
Добавлено через 3 минуты 18 секунд
сейчас сделала так, но по-моему что-то не то...
int big_printer(const big_number a){ big_number d,de,acop,r; unsigned int k[10241]; int t, i; big_copy(a,&acop); to_big(10,&d); t=0; while(big_is_zero(acop)==0){ big_div(acop,d,&r,&de); k[t]=de.num[0]; big_div(acop,d,&de,&r); big_copy(de,&acop); t++; } if(a.sign!=1){ printf("-"); } for(i=t;i>=1;i--){ printf("%d", k[i-1]); } return 0; }
Решение задачи: «Как правильно заменить cout, чтобы получилась программа на чистом Си»
textual
Листинг программы
int big_printer(const Big_number a){ Big_number d, de, acop, r; unsigned int k[10241]; int t; big_copy(a, &acop); /* должна быть объявлена выше */ to_big(10, &d); /* должна быть объявлена выше */ for (t = 0; !big_is_zero(acop); t++) { /* должна быть объявлена выше */ big_div(acop, d, &r, &de); /* должна быть объявлена выше */ k[t] = de.num[0]; big_div(acop, d, &de, &r); big_copy(de, &acop); } if (a.sign != 1) putchar('-'); while (--t >= 0) printf("%d", k[t]); return 0; }
Объяснение кода листинга программы
Этот код на языке Си выполняет вычисления с большими числами и выводит результат на консоль. Вот список действий, которые он выполняет:
- Создает переменные
d
,de
,acop
,r
иt
для хранения чисел и индексов. - Копирует значение переменной
a
в переменнуюacop
. - Создает число
d
равное 10. - Начинает цикл, который продолжается, пока число
acop
не станет равным нулю. - Делит
acop
наd
и сохраняет частное в переменнойr
, а остаток в переменнойde
. - Сохраняет значение
de
в массивеk
с индексомt
. - Делит
acop
наd
и сохраняет частное в переменнойde
, а остаток в переменнойr
. - Копирует значение
de
вacop
. - Увеличивает значение
t
на 1. - Если знак числа
a
равен 1, то выводит-
, иначе ничего не выводит. - Пока значение
t
больше или равно 0, выводит значение массиваk
с индексомt
. - Возвращает 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д