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

Решение системы из n линейных уравнений с n неизвестными

25.12.2016, 16:58. Просмотров 754. Ответов 20
Метки нет (Все метки)

Имя входного файла: input.txt
Имя выходного файла: output.txt
Ограничение по времени: 2 секунды
Ограничение по памяти: 64 мегабайта
Вам дана система из n линейных уравнений с n неизвестными. Решите её. Гарантируется, что
система имеет единственное решение.
Формат входного файла
Первая строка входного файла содержит единственное число n. В следующих n строках записано
по n + 1 целому числу — коэффициенты перед неизвестными и правая часть уравнения (последнее
число). Все числа по модулю не превосходят 100.
Формат выходного файла
В выходной файл выведите n чисел — найденные значения неизвестных, с точностью до 4 знаков
после точки

Добавлено через 1 час 55 минут
Вот, что выходит. Что дописать нужно или исправить?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <math.h>
int main()
{
 int i,j,N,M,A[100][100];
 for (i=0;i<N;i++) 
 for (j=0;j<N;j++) 
 {
 printf ("A[%d][%d]=",i,j);
 scanf ("%d", &A[i][j]); 
 }
 
printf("%d\n");
for ( i = 0; i < M; i ++ ) { 
    for ( j = 0; j < N; j ++ )  
 printf ( "%4d", A[i][j] ); 
 printf("\n");
 } 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2016, 16:58
Ответы с готовыми решениями:

Решение системы уравнений с двумя неизвестными (метод Крамера)
Программа читает значение a, b, c, d, e, f типа int, решает систему уравнений по правилу Крамера:...

Решение системы двух уравнений с двумя неизвестными методом Крамера
нужно составить алгоритм на языке СИ, который бы решил систему двух уравнении с двумя неизвестными

Найти решение системы линейных уравнений
РЕШИТЕ,ПОЖАЛУЙСТА 1. Найти решение системы линейных уравнений вида В системе(A1*x+B1*y=C1 и...

Решение системы линейных уравнений n порядка
Нужно составить решение системы линейных уравнений n-го порядка.

Найти решение системы линейных уравнений
Даны действительные числа a1, b1, c1, a2, b2, c2. Выяснить, верно ли, что |a1*b2-a2*b1|&gt;0.0001, и...

20
cybeuser
105 / 105 / 73
Регистрация: 18.11.2013
Сообщений: 304
Завершенные тесты: 1
25.12.2016, 17:58 2
splinther, вот вам руководство к действию
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    FILE *input = fopen("input.txt", "r");
    FILE *output = fopen("output.txt", "w");
    int n = 0;// Размерность
    char **A_b = NULL;// Коэффициенты и правая часть
    float *X = NULL;// Неизвестные
    int i = 0, j = 0;
    
    if(!input)
    {
        printf("Input file doesn't exist\n");
        return 1;
    }
    
    if(!output)
    {
        printf("Output file can not be created\n");
        return 1;
    }
    
    if(fscanf(input, "%d", &n) != 1)
    {
        printf("Can not read n\n");
        return 1;
    }
    
    printf("n = %d\n", n);
    
    if(n <= 0)
        return 1;
    
    A_b = (char **) malloc(n * sizeof(char*));
    for(i = 0; i < n; i++)
        A_b[i] = (char *) malloc((n + 1) * sizeof(char));
    
    for(i = 0; i < n; i++)
        for(j = 0; j < n + 1; j++)
            if(fscanf(input, "%d", &A_b[i][j]) != 1)
            {
                printf("Can not read element i = %d, j = %d\n", i , j);
                return 1;
            }
            
    X = (float *) malloc(n * sizeof(float));
    
    printf("A_b: \n");
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n + 1; j++)
            printf("%3d ", A_b[i][j]);
        printf("\n");
    }
    
    // Здесь метод решения СЛАУ => нахождение X
    
    for(i = 0; i < n; i++)
        fprintf(output,"%.4f ", X[i]);
    
    for(i = 0; i < n; i++)
        free(A_b[i]);
    free(A_b);
    free(X);
    
    fclose(input);
    fclose(output);
    
    return 0;
}
0
splinther
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 16
25.12.2016, 18:04  [ТС] 3
Спасибо огромное) Можно как-то еще модуль вписать, там же условие дано.
0
cybeuser
105 / 105 / 73
Регистрация: 18.11.2013
Сообщений: 304
Завершенные тесты: 1
25.12.2016, 18:06 4
splinther, не превосходит по модулю - не означает, что нужно считывать модуль, эта фраза говорит об ограничении на размер(в байтах) одного числа
1
25.12.2016, 18:06
splinther
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 16
25.12.2016, 18:09  [ТС] 5
Проверил просто, компилятор выдает: input file doesn exist
0
cybeuser
105 / 105 / 73
Регистрация: 18.11.2013
Сообщений: 304
Завершенные тесты: 1
25.12.2016, 18:19 6
splinther, а вы файл создайте input.txt

Добавлено через 1 минуту
и заполните его по заданию
0
splinther
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 16
25.12.2016, 18:25  [ТС] 7
Хорошо) тогда еще вопрос)) что значит: if(!input) и if(!output)?
0
cybeuser
105 / 105 / 73
Регистрация: 18.11.2013
Сообщений: 304
Завершенные тесты: 1
25.12.2016, 18:36 8
splinther, проверка на случай, если файл не открылся
читайте о FILE * и функции fopen()
http://learnc.info/c/text_files.html
0
splinther
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 16
25.12.2016, 18:45  [ТС] 9
То есть это не обязательно? можно и убрать
C
1
2
3
4
5
6
7
8
9
10
11
 if(!input)
    {
        printf("Input file doesn't exist\n");
        return 1;
    }
    
    if(!output)
    {
        printf("Output file can not be created\n");
        return 1;
    }
0
cybeuser
105 / 105 / 73
Регистрация: 18.11.2013
Сообщений: 304
Завершенные тесты: 1
25.12.2016, 18:49 10
splinther, можно, но тогда бы у вас не было предупреждения при отсутствии файла
Цитата Сообщение от splinther Посмотреть сообщение
Проверил просто, компилятор выдает: input file doesn exist
0
splinther
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 16
25.12.2016, 18:53  [ТС] 11
просто программа сама проверяет, вручную не нужно писать ничего в ней
0
cybeuser
105 / 105 / 73
Регистрация: 18.11.2013
Сообщений: 304
Завершенные тесты: 1
25.12.2016, 18:56 12
splinther, что программа проверяет сама?

Добавлено через 1 минуту
fopen() вернет NULL, в случае, если она не получила доступ к файлу
0
splinther
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 16
25.12.2016, 18:57  [ТС] 13
не обязательно делать проверку на отсутствие файла, это сделает компилятор)
ни разу просто не видел, чтобы писали if(!input)
0
cybeuser
105 / 105 / 73
Регистрация: 18.11.2013
Сообщений: 304
Завершенные тесты: 1
25.12.2016, 19:06 14
splinther, какой у вас компилятор?

Добавлено через 2 минуты
Функция fopen()
"Если файл был успешно открыт, функция возвращает указатель на объект файла, который используется для идентификации потока и выполнения операций с файлом. В противном случае, возвращается нулевой указатель."
0
splinther
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 16
25.12.2016, 19:10  [ТС] 15
Я веду к тому, что файл так и так будет успешно открыт) Там у преподавателя какая-то система проверки. Проверяется программа автоматически. Файл в любом случае будет открыт на проверку.
0
cybeuser
105 / 105 / 73
Регистрация: 18.11.2013
Сообщений: 304
Завершенные тесты: 1
25.12.2016, 19:14 16
splinther, вы главное метод решения слау вставить в программу не забудьте
0
splinther
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 16
25.12.2016, 19:18  [ТС] 17
А как его оформить нужно вообще?
0
cybeuser
105 / 105 / 73
Регистрация: 18.11.2013
Сообщений: 304
Завершенные тесты: 1
25.12.2016, 19:48 18
splinther, напишите отдельную функцию или прям в функции main напишите
0
splinther
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 16
25.12.2016, 19:58  [ТС] 19
Прямо в main? Функцию любую придумать можно вообще?
0
cybeuser
105 / 105 / 73
Регистрация: 18.11.2013
Сообщений: 304
Завершенные тесты: 1
25.12.2016, 20:55 20
splinther, а каким методом надо решать СЛАУ?
0
25.12.2016, 20:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2016, 20:55

Решение системы линейных уравнений методом Гаусса
Здравствуйте! Ребят, помогите пожалуйста с программой. Нужно доработать несколько замечаний: 1) В...

Решение системы линейных уравнений методом Гаусса
Помогите,пожалуйста,написать программу. При выполнении задания необходимо ввести в программу...

Решение системы линейных уравнений специального вида
даны уравнения надо их решить через любую среду программирования. 2x1 + x2=5 x1 + 2x2 + x3 =7 x1...


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

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

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