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

Получить матрицу Х, каждый элемент который равен сумме соответствующих элементов матриц А и B

29.11.2011, 18:56. Просмотров 1088. Ответов 7
Метки нет (Все метки)

Вот задача:
Двумерные массивы.
Заданные матрицы А(м,м) и B(м,м). Получить матрицу Х(м,м) каждый элемент который равен сумме соответствующих элементов матриц А и B. Результат записать в массив B(m,n) и вывести на экран и в файл.

мой вариант ответа, но программа вылетает при попытки исполнить код. Компиляция проходит без проблем.
Вставляю тут код:

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
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
void k(int A[3][3])
   {
    printf("Vvedite chislo 1:%d\n",A[0][0]);
    printf("Vvedite chislo 2:%d\n",A[0][1]);
    printf("Vvedite chislo 3:%d\n",A[0][2]);
    printf("Vvedite chislo 4:%d\n",A[1][0]);
    printf("Vvedite chislo 5:%d\n",A[1][1]);
    printf("Vvedite chislo 6:%d\n",A[1][2]);
    printf("Vvedite chislo 7:%d\n",A[2][0]);
    printf("Vvedite chislo 8:%d\n",A[2][1]);
    printf("Vvedite chislo 9:%d\n",A[2][2]);
    };
 
void l(int B[3][3])
    {
    printf("Vvedite chislo 1:%d\n",B[0][0]);
    printf("Vvedite chislo 2:%d\n",B[0][1]);
    printf("Vvedite chislo 3:%d\n",B[0][2]);
    printf("Vvedite chislo 4:%d\n",B[1][0]);
    printf("Vvedite chislo 5:%d\n",B[1][1]);
    printf("Vvedite chislo 6:%d\n",B[1][2]);
    printf("Vvedite chislo 7:%d\n",B[2][0]);
    printf("Vvedite chislo 8:%d\n",B[2][1]);
    printf("Vvedite chislo 9:%d\n",B[2][2]);
    };
main(int A[3][3], int B[3][3], int X[3][3])
{
 
X[0][0]=A[0][0]+B[0][0];
X[0][1]=A[0][1]+B[0][1];
X[0][2]=A[0][2]+B[0][2];
X[1][0]=A[1][0]+B[1][0];
X[1][1]=A[1][1]+B[1][1];
X[1][2]=A[1][2]+B[1][2];
X[2][0]=A[2][0]+B[2][0];
X[2][1]=A[2][1]+B[2][1];
X[2][2]=A[2][2]+B[2][2];
cin>>"Otvet:    X[0][0]=:",X[0][0];
cin>>"Otvet:    X[0][1]=:",X[0][1];
cin>>"Otvet:    X[0][2]=:",X[0][2];
cin>>"Otvet:    X[1][0]=:",X[1][0];
cin>>"Otvet:    X[1][1]=:",X[1][1];
cin>>"Otvet:    X[1][2]=:",X[1][2];
cin>>"Otvet:    X[2][0]=:",X[2][0];
cin>>"Otvet:    X[2][1]=:",X[2][1];
cin>>"Otvet:    X[2][2]=:",X[2][2];
getch();
return 0;
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2011, 18:56
Ответы с готовыми решениями:

Построить массив S, каждый элемент которого равен сумме соответствующих элементов массивов A и B
Даны массивы A и B, состоящие из n элементов. Постройте массив S, каждый...

Создать третий массив такого же размера каждый элемент которого равен сумме соответствующих элементов двух первых массивов
Даны два двумерных массива одинаковых размеров. а) Создать третий массив...

Заполнить матрицу: каждый элемент равен сумме соседей сверху и слева (элементы 1-го столбца и строки равны 1)
Составить программу вывода на экран арифметического квадрата,*в котором первый...

Указатель на двумерный массив, каждый элемент которого равен сумме элементов двух исходных массивов
Добрый вечер. Необходима помощь в следующей задаче. &quot;Написать функцию,...

Читая квадратную матрицу s [5 * 5] столбиками, заменить каждый элемент который равен нулю, максимальным значением этого столбца
Читая квадратную матрицу s столбиками, заменить каждый элемент который равен...

7
alenka-46
16 / 16 / 2
Регистрация: 28.04.2011
Сообщений: 38
29.11.2011, 19:09 2
Скорее всего всего ошибка в строке 30, я думаю, что Turbo C поддерживает тольо две функции void main (void) и int main(void). Может стоит просто подобрать другой алгоритм решения задачи
0
HighPredator
5692 / 2011 / 723
Регистрация: 10.12.2010
Сообщений: 5,778
Записей в блоге: 3
29.11.2011, 19:17 3
Цитата Сообщение от rapniger Посмотреть сообщение
C
1
main(int A[3][3], int B[3][3], int X[3][3])
Так разве можно делать?
0
rapniger
1 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 21
29.11.2011, 20:11  [ТС] 4
Цитата Сообщение от alenka-46 Посмотреть сообщение
Скорее всего всего ошибка в строке 30, я думаю, что Turbo C поддерживает тольо две функции void main (void) и int main(void). Может стоит просто подобрать другой алгоритм решения задачи
Забыл сохранить, исправляюсь на void main(переменные)
Цитата Сообщение от Predator_2004 Посмотреть сообщение
Так разве можно делать?
Если что-то не так, скажите как сделать?
Но уже понял, ранее переменные теряются, когда еще раз вводят int

Добавлено через 52 минуты
Пишу другую программу, тоже массивы. Также программа вылеатает.

Пожалуйста, напишите свои версии программы. но можно уменшить размерность массив, например а[2][2].
0
aeshes
442 / 205 / 21
Регистрация: 07.10.2011
Сообщений: 462
29.11.2011, 20:33 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Вот пример, складывает матрицы 3х3. Вообще работа с массивами предполагает работу с циклами. Или в случае, когда у тебя будет матрица 100х100, ты руками будешь писать все свои 10000 раз строчки для ввода и сложения? ))
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
#include <iostream.h>
 
void input(int A[3][3])
{
     int i,j;
     for(i=0;i<3;i++)
     for(j=0;j<3;j++) 
     { 
        cout<<"Vvedite element["<<i<<"]["<<j<<"]: ";
        cin>>A[i][j]; 
     } 
  
}
 
void output(int A[3][3])
{
    int i,j;
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
    cout<<A[i][j]<<" ";
        cout<<"\n";
    }
}
 
int main()
{
  int A[3][3], B[3][3], X[3][3];
  cout<<"Vvod Matricy A\n";
  input(A);
  cout<<"\nVvod Matricy B\n";
  input(B); 
  int i,j;
  for(i=0;i<3;i++)
     for(j=0;j<3;j++)
        X[i][j]=A[i][j]+B[i][j];
  cout<<"\nMatrica A:\n";
  output(A);
  cout<<"\nMatrica B:\n";
  output(B);
  cout<<"\nOtvet:\n";
  output(X);
}
0
rapniger
1 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 21
29.11.2011, 21:04  [ТС] 6
Компиляция прошла, а при запуске программы - вылетает.
Заметил, что при одномерном массиве работает на ура. А двух(трех) мерные массивы - одни вылеты...
А вот почему?(
0
aeshes
442 / 205 / 21
Регистрация: 07.10.2011
Сообщений: 462
29.11.2011, 21:07 7
rapniger, что значит "вылетает" в вашем понимании? Закрывается окно? Или выдает ошибку рантайма?
К сожалению, у меня нет ТурбоС, но в моей IDE программа работает и выдает результат. Поэтому хотелось бы знать, в чем может быть дело в ТурбоС.
Если первое, то все решается добавлением например getch() в конец, а вот если второе, то интересно - на какой строке происходит поломка
0
rapniger
1 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 21
29.11.2011, 21:26  [ТС] 8
Скриншот
Получить матрицу Х, каждый элемент который равен сумме соответствующих элементов матриц А и B
0
29.11.2011, 21:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2011, 21:26

Сформировать массив, каждый последующий элемент которого равен сумме всех предыдущих
Даны целые числа N (&gt; 2), A и B. Сформировать и вывести целочисленный массив...

Получить вектор, элементы которого равны сумме минимального и максимального элементов соответствующих строк
Дана матрица A(n*n) целых чисел. Получить вектор, элементы которого равны сумме...

Сформировать массив, каждый элемент которого равен произведению элементов соответствующей строки матрицы Е
Помогите пожалуйста найти ошибку в коде: Дана матрица целых чисел E размером...


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

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

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