Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Язык С


Автор: Craizi8 24.4.2020, 20:02
1.    Составьте программу вычисления суммы элементов по столбцам матрицы A (N, N).
2.    Составьте программу вычисления среднего арифметического каждой строки  матрицы B (N, N) и запишите данные значения в побочную диагональ данной матрицы.

Автор: kapbepucm 1.5.2020, 14:47
Код
#include <stdio.h>
#include <stdlib.h>

int getElement(int* matrix, unsigned int row, unsigned int column, unsigned int n)
{
  return matrix[row * n + column];
}

void setElement(int* matrix, unsigned int row, unsigned int column, unsigned int n, int value)
{
  matrix[row * n + column] = value;
}

void setMatrix(int* matrix, const int n)
{
  unsigned int row, column;
  int value;
  for (row = 0; row < n; ++row)
    for (column = 0; column < n; ++column)
    {
      printf("a(%i, %i)=", row + 1, column + 1);
      scanf("%i", &value);
      setElement(matrix, row, column, n, value);
    }
}

void printMatrix(int* matrix, const unsigned int n)
{
  unsigned int row, column;
  int value;
  printf("A(%i, %i):\n", n, n);
  for (row = 0; row < n; ++row)
  {
    for (column = 0; column < n; ++column)
    {
      value = getElement(matrix, row, column, n);
      printf("a(%i,%i)=%i  ", row + 1, column + 1, value);
    }
    printf("\n");
  }
}

void sumColumns(int* matrix, const unsigned int n)
{
  unsigned int row, column;
  int value = 0;
  printf("task1: summ values in columns:\n");
  for (column = 0; column < n; ++column)
  {
    for (row = 0; row < n; ++row)
      value = value + getElement(matrix, row, column, n);
    printf("%i  ", value);
    value = 0;
  }
  printf("\n");
}

void task2(int* matrix, const unsigned int n)
{
  printf("task 2\n");
  unsigned int row, column;
  int value = 0;
  for (row = 0; row < n; ++row)
  {
    for (column = 0; column < n; ++column)
      value = value + getElement(matrix, row, column, n);
    value = value / n;
    setElement(matrix, row, n - row - 1, n, value);
    value = 0;
  }
  printMatrix(matrix, n);
}

int main (void)
{
  unsigned int n;
  int* a;

  printf("N=");
  scanf("%i", &n);
  a = (int*)malloc(n * n * sizeof(int));

  setMatrix(a, n);
  printMatrix(a, n);
  sumColumns(a, n);

  task2(a, n);

  free(a);
  return 0;
}

Автор: Geras77 25.5.2020, 19:15
Автосервис предоставляет n различных услуг, в каждую из которых – очередь автомобилей. Новые автомобили заезжают в автосервис через случайные интервалы времени; время обслуживания в каждом из n сервисов – постоянная величина a[i] (i <= n). Выбрать маршрут, при котором за заданное время t автомобиль сможет пройти максимальное число сервисов. На языке С(СИ)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)