Как вызвать функцию для выполнение всех операций в 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;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
, , - Определяем две функции: fill и print, которые принимают массив a размером 5х5 и выполняют соответственно заполнение и вывод его элементов.
- Определяем функцию func, которая принимает массив a размером 5х5 и возвращает индекс первого положительного элемента в массиве.
- В функции main создаем массив a размером 5х5 и инициализируем его случайными числами с помощью функции fill.
- Выводим значения всех элементов массива с помощью функции print.
- Вызываем функцию func, передавая ей массив a, и сохраняем ее результат в переменной elem.
- Проверяем значение переменной elem: если оно равно -1, выводим сообщение
There are no positive elements. В противном случае выводим сообщениеNumber of elements before the 1st positive: .... - Возвращаем 0, чтобы указать, что программа успешно завершилась.