2 / 2 / 0
Регистрация: 25.01.2013
Сообщений: 27
1

Ввести матрицу целых чисел, количество строк и столбцов которой заранее неизвестно. Ошибка в коде

02.05.2014, 21:33. Показов 1128. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
И снова я..Уже четыре часа мучаюсь с заданием:
Ввести матрицу целых чисел, количество строк и столбцов которой заранее неизвестно. Признаком завершения ввода матрицы является ввод трех чисел, дающих в сумме ноль. Признаком конца ввода матрицы является ввод строки, состоящей попеременно из положительных и отрицательных чисел.
Написал код, несколько раз его просмотрел - алгоритм вроде как безошибочный. Он даже компилируется, но когда начинаю заполнять свою матрицу вылетает ошибка после 3его введенного значения. Если кто поможет исправить, - буду очень благодарен)
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
#include "stdafx.h"
#include <stdlib.h>
#include "stdafx.h"
#include <stdio.h>
int main(){
    int holy,evil,i,j,k,mnstr;
    i=k=holy=evil=mnstr=0;
    j=1;
    int **A = (int **)malloc(3*sizeof(int *));
    for(int i = 0; i < 3; i++) {
        A[i] = (int *)malloc(1*sizeof(int));
    }
    while (holy!=1){
        A[j] = (int*)realloc(A[j], (i+1)*sizeof(*A[j])); 
        scanf("%d",&A[0][j]);
        scanf("%d",&A[1][j]);
        scanf("%d",&A[2][j]);
        evil=A[0][j]+A[1][j]+A[2][j];
        i=3;
        while(evil!=0){
            A[i] = (int*)realloc(A[i], (j+1)*sizeof(*A)); 
            scanf("%d",&A[i][j]);
            evil=A[i][j]+A[i-1][j]+A[i-2][j];
            i++;
        }
        for (k=0;k<(i-2);k++){
            if (A[k][j]<0&&A[k+1][j]>0||A[k][j]>0&&A[k+1][j]<0)mnstr++;
        }
        if (mnstr==(i-2))holy=1;
        j++;
        mnstr=0;
    }
        
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2014, 21:33
Ответы с готовыми решениями:

Ввести массив целых чисел, количество элементов которого заранее неизвестно
Ввести массив целых чисел, количество элементов которого заранее неизвестно. Признаком конца ввода...

Ввести последовательность чисел, количество которых заранее неизвестно
Ввести последовательность чисел, количество которых заранее не известно. Признаком окончания ввода...

Ввести последовательность чисел, количество которых заранее неизвестно
Ввести последовательность чисел, количество которых заранее не известно. Признаком окончания ввода...

Ввести массив целых чисел количество которых неизвестно
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include...

2
Будущее рядом
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
02.05.2014, 23:55 2
Unheilbar, постойте, но как же программа поймет, сколько в матрице будет строк, а сколько столбцов? Вы вот ввели 12 чисел. Получится либо 2x6, либо 3x4, либо 4x3, либо 6x2, либо даже 1x12
0
2 / 2 / 0
Регистрация: 25.01.2013
Сообщений: 27
03.05.2014, 23:24  [ТС] 3
если смотреть вначале на условие, а потом на код, то видно, что матрица как минимум размера 3*1, при этом ее размер меняется во время работы программы в зависимости от свойств введенных чисел.

Добавлено через 22 часа 34 минуты
Признаком завершение конца вввода строки матрицы, является ввод трех чисел дающих в сумме 0***
0
03.05.2014, 23:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2014, 23:24
Помогаю со студенческими работами здесь

Ввести массив целых чисел, количество элементов которого заранее не известно
Ввести массив целых чисел, количество элементов которого заранее не известно. Признаком конца ввода...

Ввести массив строк, число которых заранее неизвестно, имея признаки ввода конца строки и самой матрицы
Ввести массив строк, число которых заранее неизвестно. Признаком конца ввода строки является ввод...

Сложение чисел, количество которых неизвестно заранее
Задача состоит в том, что нужно сложить несколько восьмизначных чисел. Сначала пользователь должен...

Создать матрицу случайным образом ,количество строк и столбцов ввести с клавиатуры.
Создать матрицу случайным образом ,количество строк и столбцов ввести с клавиатуры. Условие: ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru