Принять целое число и вывести на экран в обратном порядке цифры этого числа - 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);
Объяснение кода листинга программы
В данном коде выполняется следующие действия:
- Вводится целое число.
- Выделяется память под массив указателей на int с размером i.
- Каждый элемент массива инициализируется нулем.
- Происходит обращение к каждому элементу массива и вывод его значения в обратном порядке. Список действий:
- Ввод целого числа -
i
- Выделение памяти под массив указателей на int -
tab
- Инициализация элементов массива нулями -
tab[0]
,tab[1]
, ...,tab[i-1]
. - Обращение к каждому элементу массива и вывод его значения в обратном порядке -
tab[i-1]
,tab[i-2]
, ...,tab[0]
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д