Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
blackfury
0 / 0 / 0
Регистрация: 24.03.2017
Сообщений: 9
1

Работа с матрицами (программа завершается аварийно)

02.04.2017, 13:32. Просмотров 234. Ответов 6
Метки нет (Все метки)

Помогите, на Си, не С++. Выдает другие значения, к тому же аварийно завершает программу
Для заданной матрицы B(n × n) и матрицы того же типа и размерности C(n × n) найти значение выражения A = 1/2· B + C^2.
Сам код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    printf("Hello world!\n");
    int e=0, e1=0, l1=0;
    scanf("%d", &e);
    float C[e][e], B[e][e];
    for(e1 = 0; e1 < e; e1++)
        {
        for(l1 = 0; l1 < e; l1++)
            {
            scanf("%f", &B[e1][l1]);
            scanf("%f", &C[e1][l1]);
            }
        }
        //
 
    float alg(int e, float B[e][e], float C[e][e], float** Arr)
        {
        for(e1 = 0; e1 < e; e1++)
            {
            for(l1 = 0; l1 < e; l1++)
                {
                C[e1][l1]=pow(C[e1][l1], 2);
                B[e1][l1]=B[e1][l1]/2;
                Arr[e1][l1]=C[e1][l1]+B[e1][l1];
                }
            }
        return 0;
        }
    float ** A;
    A = (float**)malloc(e * sizeof(float*));
    for (l1 = 0; l1 < e; l1++)
    A[e1] = (float*)malloc(e * sizeof(float));
        //vozvrat A
    alg(e, B, C, A);
    for(e1 = 0; e1 < e; e1++)
        {
        for(l1 = 0; l1 < e; l1++)
            {
            printf("%f ", A[e1][l1]);
            }
        printf("\n");
        }
    return 0;
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2017, 13:32
Ответы с готовыми решениями:

Программа аварийно закрывается
Доброе время суток. Проблема такова. Я учусь Языку Си. Тут по книге написал маленький код. Весь...

При вызове функции программа аварийно завершает работу
Здравствуйте, уважаемые форумчане! Помогите, пожалуйста, разобраться, что я делаю не так. При...

Программа не завершается после выполнения
программа выводит определённые строки текстового файла на экран, сортируя их. всё работает...

Найти значение функции. Программа завершается некорректно
Помогите пожалуйста, ошибок компилятор не выдаёт, но винда аварийно завершает работу...

Модифицированный бинарный поиск: программа завершается с ошибкой
Доброго времени суток. Чутка модифицировал функцию бинарного поиска и теперь программа завершается...

6
likehood
984 / 828 / 396
Регистрация: 25.12.2016
Сообщений: 2,727
Завершенные тесты: 3
02.04.2017, 14:53 2
Цитата Сообщение от blackfury Посмотреть сообщение
Выдает другие значения
Вы уверены, что C^2 это квадрат каждого элемента матрицы, а не матричное умножение C*C?
0
blackfury
0 / 0 / 0
Регистрация: 24.03.2017
Сообщений: 9
02.04.2017, 16:49  [ТС] 3
Точно, что-то в голову взбрело не то, спасибо большое, но все же даже если так, то код снова не сработает, какая-то проблема при выводе матрицы из функции, видимо
0
likehood
984 / 828 / 396
Регистрация: 25.12.2016
Сообщений: 2,727
Завершенные тесты: 3
02.04.2017, 17:20 4
Цитата Сообщение от blackfury Посмотреть сообщение
но все же даже если так, то код снова не сработает
Покажите новый код.

Добавлено через 5 минут
Несколько замечаний:
1) Код функции alg нужно вынести из функции main - в Си нет вложенных функций.
2) Почему то часть матриц задаётся в виде статических массивов, а часть в виде динамических. Сделайте единообразно.
3) Имена переменных e, e1, l1 неудачные, лучше заменить на n, i, j.
4) Что возвращает функция alg?
0
blackfury
0 / 0 / 0
Регистрация: 24.03.2017
Сообщений: 9
02.04.2017, 18:41  [ТС] 5
Понял, разберусь. Функция пробная, создана только лишь для действий над матрицами и вывода их по указателю, поэтому ничего не возвращает. Значит, чтобы в норме работала функция, нужно, чтобы массивы были сделаны по одному типу?
Немного новичок в Си, работу нужно сделать за неделю обязательно, озадачился
0
likehood
984 / 828 / 396
Регистрация: 25.12.2016
Сообщений: 2,727
Завершенные тесты: 3
02.04.2017, 20:02 6
Цитата Сообщение от blackfury Посмотреть сообщение
Значит, чтобы в норме работала функция, нужно, чтобы массивы были сделаны по одному типу?
Не обязательно, но желательно. Для единообразия.
0
vua72
418 / 417 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
02.04.2017, 23:28 7
float C[e][e] и float** Arr - разные сущности. Первый это двумерный массив, а второй - массив указателей на массивы указателей. В качестве параметров функции они не совместимы. При работе с индексами - одно и то же.
0
02.04.2017, 23:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2017, 23:28

Libxml2 - программа завершается при выполнении функции xmlReadFile()
Привет. Делаю xml-parser, использую библиотеку libxml2. Почему-то программа завершается при...

Работа с матрицами
Задана матрица A вещественных чисел размера N × N (N ≤ 20, задается как параметр). По- строить по...

Программа аварийно завершается
Доброго времени суток! Моя программа аварийно завершается вернув значение &quot;255 (0xFF)&quot; Прошу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru