Примеры программирования.
Пример 7: Вычисление суммы массива.
В примере первый параметр определяет сам массив, а второй – его размер.
…
int summa (int array[ ], int n)
{ int res=0;
for (int i = 0; i < n; i++)
res+= array[i];
return res;
}
void main()
{// определение массива в 30 элементов
int mas[30];
// инициализация массива
for (int i = 0; i < 30; i++)
mas[i] = 2*i + 1;
// создание переменной s и вычисление суммы
int s = summa (mas, 30);
}
Пример 8: С помощью датчика случайных чисел создать матрицу вещественных чисел 5Х5, вывести на экран, найти минимальные элементы в строках и максимальные элементы в столбцах. Все действия с матрицей оформить в виде функций, создать следующие функции:
#include <stdio.h>
#include <time.h>
#include <windows.h>
#define raw 5 // количество строк
#define col 5 // количество столбцов
// ______область определения функций________________________
//функция для инициализации матрицы;
void initmatr(double M[raw][col])
{int i,j;
for (i=0;i<raw; i++)
for (j=0;j<col; j++)
M[i][j]=rand()%100/3.;
}
//функция для печати матрицы
void printmatr(double M[raw][col])
{int i,j;
for (i=0; i<raw; i++)
{for (j=0;j<col; j++)
printf("%7.3f\t",M[i][j]);
printf("\n");
}
}
// поиск минимального элемента в строке.
double rawmin (double M[raw][col], int traw)
{ double min;
int i;
for (i=0,min=M[traw][0];i<col; i++)
if (min > M[traw][i]) min=M[traw][i];
return min;
}
// поиск максимального элемента в столбце
double colmax (double M[raw][col], int tcol)
{ double max;
int i;
for (i=0,max=M[0][tcol];i<raw; i++)
if (max < M[i][tcol]) max=M[i][tcol];
return max;
}
//конец области определения функций____________________
int _tmain(int argc, _TCHAR* argv[])
{ setlocale(0,"Russian");
// область определения объектов (выделение памяти)
double MATR[raw][col],cmax;
int i;
srand (time(0));
initmatr(MATR);
printf("Исходная матрица:\n");
printmatr(MATR);
printf("Минимальные значения в строках:\n");
for (i=0;i<raw;i++)
printf("%d строка - %7.3f\n",i+1,rawmin (MATR,i));
printf("Максимальные значения в столбцах:\n");
for (i=0;i<col;i++)
{cmax=colmax (MATR,i);
printf("%d столбец - %4.3f\n",i+1,cmax);
}
return 0;
}
Функции initmatr() и printmatr() не возвращают значений и имеют по одному параметру, определяющему матрицу.
Функции rawmin() и colmax() возвращают результат и имеют по два параметра, первый определяет матрицу, а второй обрабатываемую строку (столбец). Возвращаемое значение без запоминания выводится на экран, когда вызов функций rawmin()является параметром в функции printf().Результат, возвращаемый функцией colmax()запоминается в переменнойcmax, а затем выводится на экран.