Как правильно заменить 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;
}

Объяснение кода листинга программы

Этот код на языке Си выполняет вычисления с большими числами и выводит результат на консоль. Вот список действий, которые он выполняет:

  1. Создает переменные d, de, acop, r и t для хранения чисел и индексов.
  2. Копирует значение переменной a в переменную acop.
  3. Создает число d равное 10.
  4. Начинает цикл, который продолжается, пока число acop не станет равным нулю.
  5. Делит acop на d и сохраняет частное в переменной r, а остаток в переменной de.
  6. Сохраняет значение de в массиве k с индексом t.
  7. Делит acop на d и сохраняет частное в переменной de, а остаток в переменной r.
  8. Копирует значение de в acop.
  9. Увеличивает значение t на 1.
  10. Если знак числа a равен 1, то выводит -, иначе ничего не выводит.
  11. Пока значение t больше или равно 0, выводит значение массива k с индексом t.
  12. Возвращает 0, чтобы указать, что программа успешно завершилась.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы