Передать массив в главную функцию - 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;
}

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

  1. Включаем необходимые заголовочные файлы , , ,
  2. Объявляем функцию massiv(), которая возвращает указатель на массив из 10 целых чисел.
  3. В функции main() создаем указатель a на массив B из 10 элементов.
  4. Вызываем функцию massiv(), передавая ей пустой аргумент void, и сохраняем результат в переменной a.
  5. Выводим элементы массива B с помощью цикла for, используя оператор printf() для вывода каждого элемента с пробелом в конце.
  6. В функции massiv() объявляем статический массив A из 10 элементов и указатель a на первый элемент массива A.
  7. Инициализируем массив A с помощью цикла for, используя функцию rand() для генерации случайного числа в диапазоне от -100 до 100 и присваивая его соответствующему элементу массива A.
  8. Выводим элементы массива A с помощью цикла for, используя оператор printf() для вывода каждого элемента с пробелом в конце.
  9. Возвращаем указатель a на массив A из функции massiv().
  10. Получаем ввод с клавиатуры с помощью функции getchar().

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


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

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

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