Принять целое число и вывести на экран в обратном порядке цифры этого числа - C (СИ)

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

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

Итак. Программа принимает целое число и выводит на экран в обратном порядке цифры этого числа(например: число 1234 выводит 4, 3, 2, 1) Функция number() принимает это число, а функция table() возвращает массив цифр этого числа. Вопрос вот в чем. Для чего перед названием функции table() мы ставим знак указателя(т.е. int *table(int n))Что даёт этот указатель, зачем он нужен, почему он так необходим? Смысл его применения в данном случае или вообще? Удалил указатель. Проверил что будет. Программа как работала так и работает дальше, но компилируется со следующим warning'ом:

malloctab.c: In function ‘table’: malloctab.c:28:1: warning: return makes integer from pointer without a cast [enabled by default]

Все же указатель перед названием функции нужен, но зачем вот в чем вопрос.
#include<stdio.h>
#include<stdlib.h>
 
int number(){
float n;
        do{
        printf("Enter the integer number >0 and <100000\n"$
        scanf("%f",&n);
        }while(n<0 || n>100000 || n != (int)n);
 
return (int)n;
}
 
int *table(int n){//в данной строке, данный указатель
int p = n;
int i=0, j;
        while(p!=0){
        p=p/10;
        i++;
        }
int *tab = (int*)malloc(sizeof(int)*i);
j=i-1;
        while(n!=0){
        tab[j]=n%10;
        printf("%d, ", tab[j]);
        n=n/10;
        j--;
        }
return tab;
}
 
int main(){
int i;
 
printf("You number is %d\n",i=number());
table(i);
 
return 0;
}

Решение задачи: «Принять целое число и вывести на экран в обратном порядке цифры этого числа»

textual
Листинг программы
int *tab = (int*)malloc(sizeof(int)*i);

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

В данном коде выполняется следующие действия:

  1. Вводится целое число.
  2. Выделяется память под массив указателей на int с размером i.
  3. Каждый элемент массива инициализируется нулем.
  4. Происходит обращение к каждому элементу массива и вывод его значения в обратном порядке. Список действий:
  5. Ввод целого числа - i
  6. Выделение памяти под массив указателей на int - tab
  7. Инициализация элементов массива нулями - tab[0], tab[1], ..., tab[i-1].
  8. Обращение к каждому элементу массива и вывод его значения в обратном порядке - tab[i-1], tab[i-2], ..., tab[0].

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


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

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

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