Как вызвать функцию для выполнение всех операций в main? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Уважаемые знатоки языка Си. Помогите пожалуйста. Подскажите как в данном коде можно вызвать функцию для выполнение всех операций в main. Заранее спасибо.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
    /* an array with 5 rows and 5 columns*/
    int a[5][5];
    
    int i, j, x, y;
  // time_t t;
    
    srand(time(NULL));
  //  randomize();
    /* filling an array with random numbers */
    for ( i = 0; i < 5; i++ )
    {
        for ( j = 0; j < 5; j++ )
        {
            a[j][i] = rand()%44 - 16;
        }
    }
    
    /* output each array element's value */
    for ( x = 0; x < 5; x++ )
    {
        for ( y = 0; y < 5; y++ )
        {
          printf(" %d ",a[y][x] );
        }
        printf("\n");
    }
    
    int k, l, elem;
    int z = 0;
    /* output each array element's value */
    for ( k = 0; k < 5; k++ )
    {
        for ( l = 0; l < 5; l++ )
        {
            if (z == 0) {
                
            if (a[l][k] > 0) {
                elem = l + k * 5;
                z = 1;
                break;
            }
                
            }
        }
        
    }
    
    if (z == 0) {
        
        printf("There are no positive elements");
    }
    
    else
   
    {
        
        printf("Number of elements before the 1st positive: %d\n ", elem);
    
    }
    
    return 0;
 
}

Решение задачи: «Как вызвать функцию для выполнение всех операций в main?»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
void fill(int a[5][5]) {
    int i, j;
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 5; j++) {
            a[j][i] = rand() % 44 - 16;
        }
    }
}
 
void print(int a[5][5]) {
    int x, y;
    for (x = 0; x < 5; x++) {
        for (y = 0; y < 5; y++) {
            printf(" %d ", a[y][x]);
        }
        printf("\n");
    }
}
 
int func(int a[5][5]) {
    int k, l, elem = -1, z = 0;
    for (k = 0; k < 5; k++) {
        for (l = 0; l < 5; l++) {
            if (z == 0) {
                if (a[l][k] > 0) {
                    elem = l + k * 5;
                    z = 1;
                    break;
                }
            }
        }
    }
    return elem;
}
 
int main() {
    /* an array with 5 rows and 5 columns*/
    int a[5][5];
 
    srand(time(NULL));
    //  randomize();
    /* filling an array with random numbers */
    fill(a);
 
    /* output each array element's value */
    print(a);
 
    /* output each array element's value */
    int elem = func(a);
 
    if (elem == -1) {
        printf("There are no positive elements");
    }
    else {
        printf("Number of elements before the 1st positive: %d\n ", elem);
    }
 
    return 0;
 
}

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

  1. Включаем необходимые заголовочные файлы: , ,
  2. Определяем две функции: fill и print, которые принимают массив a размером 5х5 и выполняют соответственно заполнение и вывод его элементов.
  3. Определяем функцию func, которая принимает массив a размером 5х5 и возвращает индекс первого положительного элемента в массиве.
  4. В функции main создаем массив a размером 5х5 и инициализируем его случайными числами с помощью функции fill.
  5. Выводим значения всех элементов массива с помощью функции print.
  6. Вызываем функцию func, передавая ей массив a, и сохраняем ее результат в переменной elem.
  7. Проверяем значение переменной elem: если оно равно -1, выводим сообщение There are no positive elements. В противном случае выводим сообщение Number of elements before the 1st positive: ....
  8. Возвращаем 0, чтобы указать, что программа успешно завершилась.

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

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