Передать массив в главную функцию - C (СИ)
Формулировка задачи:
В неглавной функции заводится массив, заполняется, выводится и передается в главную где опять выводится. Компилируется, в главную не передается.
#include <conio.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int massiv(void);
int main (int *a)
{
int B[10];
massiv ();
printf ("\nPeredany massiv: \n");
for (int i=0; i<10; i++) {
B[i]=*(a+i);
printf ("%i ",B[i]); }
getch();
}
int massiv (void)
{
int A[10],*a=&A[10];
time_t t;
srand(unsigned(time(&t)));
for (int i=0;i<10;i++){
A[i]=-100 + rand()%200;
}
printf ("Ishodny massiv: \n");
for (int i=0; i<10; i++) {
printf ("%i ",A[i]); }
return(*a);
}Решение задачи: «Передать массив в главную функцию»
textual
Листинг программы
#include <conio.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int *massiv(void);
int main ()
{
int *a;
int B[10];
a = massiv();
printf ("\nPeredany massiv: \n");
for (int i=0; i<10; i++) {
B[i]=*(a+i);
printf ("%d ",B[i]); }
getchar();
}
int * massiv (void)
{
static int A[10],*a;
time_t t;
a=A;
srand((unsigned)(time(&t)));
for (int i=0;i<10;i++){
A[i]=-100 + rand()%200;
}
printf ("Ishodny massiv: \n");
for (int i=0; i<10; i++) {
printf ("%d ",A[i]);
}
return a;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
, , , - Объявляем функцию
massiv(), которая возвращает указатель на массив из 10 целых чисел. - В функции
main()создаем указательaна массивBиз 10 элементов. - Вызываем функцию
massiv(), передавая ей пустой аргументvoid, и сохраняем результат в переменнойa. - Выводим элементы массива
Bс помощью циклаfor, используя операторprintf()для вывода каждого элемента с пробелом в конце. - В функции
massiv()объявляем статический массивAиз 10 элементов и указательaна первый элемент массиваA. - Инициализируем массив
Aс помощью циклаfor, используя функциюrand()для генерации случайного числа в диапазоне от -100 до 100 и присваивая его соответствующему элементу массиваA. - Выводим элементы массива
Aс помощью циклаfor, используя операторprintf()для вывода каждого элемента с пробелом в конце. - Возвращаем указатель
aна массивAиз функцииmassiv(). - Получаем ввод с клавиатуры с помощью функции
getchar().