Принять целое число и вывести на экран в обратном порядке цифры этого числа - 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].