Принять целое число и вывести на экран в обратном порядке цифры этого числа - 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]
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д