Как правильно заменить cout, чтобы получилась программа на чистом Си - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно переписать этот код, чтобы числое Си получилось, помогите, пожалуйста, куча ошибок вылазит..
Листинг программы
  1. int big_printer(const big_number a){
  2. big_number d,de,acop,r;
  3. big_copy(a,&acop);
  4. to_big(10,&d);
  5. unsigned int k[10241];
  6. int t;
  7. t=0;
  8. while(big_is_zero(acop)==0){
  9. big_div(acop,d,&r,&de);
  10. k[t]=de.num[0];
  11. big_div(acop,d,&de,&r);
  12. big_copy(de,&acop);
  13. t++;
  14. }
  15. if(a.sign!=1){
  16. cout<<"-";
  17. }
  18. for(int i=t;i>=1;i--){
  19. cout<<k[i-1];
  20. }
  21. cout<<endl;
  22. return 0;
  23. }
Добавлено через 3 минуты 18 секунд
сейчас сделала так, но по-моему что-то не то...
Листинг программы
  1. int big_printer(const big_number a){
  2. big_number d,de,acop,r;
  3. unsigned int k[10241];
  4. int t, i;
  5. big_copy(a,&acop);
  6. to_big(10,&d);
  7. t=0;
  8. while(big_is_zero(acop)==0){
  9. big_div(acop,d,&r,&de);
  10. k[t]=de.num[0];
  11. big_div(acop,d,&de,&r);
  12. big_copy(de,&acop);
  13. t++;
  14. }
  15. if(a.sign!=1){
  16. printf("-");
  17. }
  18. for(i=t;i>=1;i--){
  19. printf("%d", k[i-1]);
  20. }
  21. return 0;
  22. }

Решение задачи: «Как правильно заменить cout, чтобы получилась программа на чистом Си»

textual
Листинг программы
  1. int big_printer(const Big_number a){
  2.      Big_number d, de, acop, r;
  3.      unsigned int k[10241];
  4.      int t;
  5.      
  6.      big_copy(a, &acop);  /* должна быть объявлена выше */
  7.      to_big(10, &d);      /* должна быть объявлена выше */
  8.      for (t = 0; !big_is_zero(acop); t++) { /* должна быть объявлена выше */
  9.          big_div(acop, d, &r, &de);         /* должна быть объявлена выше */
  10.          k[t] = de.num[0];
  11.          big_div(acop, d, &de, &r);
  12.          big_copy(de, &acop);
  13.      }
  14.      if (a.sign != 1)
  15.          putchar('-');
  16.      while (--t >= 0)
  17.          printf("%d", k[t]);
  18.      return 0;
  19. }

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

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы