Ф-я для обработки матрицы - C (СИ)

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

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

Создать ф-ю для обработки матрицы по заданию ВС-5 ВС-5:
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
void main()
{
int n,i,j;
float A[20][20], B[20];
clrscr();
printf("n=");
scanf("%d",&n);
printf("Matrica A\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("A[%d][%d]=",i+1,j+1);
scanf("%f",&A[i][j]);
}
for(i=0;i<n;i++) {
 B[i]=0;
 for(j=0;j<n;j++) {
 if(A[i][j]>=0) {
   B[i]+=A[i][j];
 }}}
clrscr();
printf("Laboratorna robota BC-5");
printf("\nstydenta gr. EMS-13");
printf("\nShramko S.V.\n");
printf("\nvariant -15");
printf("\nVhidni dani");
printf("\nn=%d",n);
printf("\nMatrica A\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%6.3f  ",A[i][j]);
printf("\n");
}
printf("\nRezyltat");
printf("\nB="); for(i=0;i<n;i++) printf("%6.3f;",B[i]);
getch();
}
Помогите.С меня +

Решение задачи: «Ф-я для обработки матрицы»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
void b(float *B, float **A, int n) {
    int i = 0, j = 0;
    for (i = 0; i < n; i++) {
        B[i] = 0;
        for (j = 0; j < n; j++) {
            if (A[i][j] >= 0) {
                B[i] += A[i][j];
            }
        }
    }
}
 
int main() {
    int raw, col;
    float **A, *B;
    int sz = 0;
    printf("n=");
    scanf("%d", &sz);
    printf("Matrica A\n");
    A = (float**) malloc(sz * sizeof(float*));
    for (raw = 0; raw < sz; ++raw) {
        A[raw] = (float*) malloc(sz * sizeof(float));
        for (col = 0; col < sz; ++col) {
            //printf("A[%d][%d]=", i + 1, j + 1);
            //scanf("%f", &A[i][col]);
            A[raw][col] = -10 + rand() % 21; //-10..10
        }
    }
    B = (float*) malloc(sz * sizeof(float));
    b(B, A, sz);
    printf("Laboratorna robota BC-5");
    printf("\nstydenta gr. EMS-13");
    printf("\nShramko S.V.\n");
    printf("\nvariant -15");
    printf("\nVhidni dani");
    printf("\nn=%d", sz);
    printf("\nMatrica A\n");
    for (raw = 0; raw < sz; ++raw) {
        for (col = 0; col < sz; ++col)
            printf("%6.3f  ", A[raw][col]);
        printf("\n");
    }
    printf("\nRezyltat");
    printf("\nB=");
    for (raw = 0; raw < sz;++raw)
        printf("%6.3f;", B[raw]);
    free(B);
 
    for (raw = 0; raw < sz; ++raw)
        free(A[raw]);
    free(A);
 
    return 0;
}

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

  1. Программа включает в себя функцию b и функцию main.
  2. В функции main считывается размер матрицы (n) и выделяется память под матрицу A и B.
  3. Затем в цикле заполняется матрица A случайными числами от -10 до 10.
  4. После этого вызывается функция b для обработки матрицы B.
  5. Выводится сообщение с информацией о программе и ее авторе.
  6. Выводится матрица A.
  7. Выводится результат обработки матрицы B.
  8. Освобождается память, выделенная под матрицу A.
  9. Освобождается память, выделенная под матрицу B.
  10. Возвращается 0, что означает успешное выполнение программы.

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


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

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

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