2016-03-04 3 views
0

Я работал над программой для отображения результата вычитания двух матриц. Программа позволяет пользователю вводить размер матриц, а затем предлагает пользователю ввести значения для этих двух матриц. Наконец, программа должна отображать эти две матрицы отдельно, а затем отображать результат вычитания этих двух.Вывод вычитания матрицы бесконечный вывод дисплея

В настоящее время, когда код запущен, выход представляет собой просто бесконечное отображение чисел. Я не могу найти, что создает эту проблему. Я был бы признателен за любые замечания относительно того, что вызывает эту проблему.

Спасибо!

using namespace std; 

#include <iostream> 
#include <conio.h> 

int main(){ 
    int i = 0, j = 0, n=0, a[10][10], b[10][10], c[10][10]; 
    bool positive = false; 

     cout << "Enter the size of the two - dimensional array: "; 
     cin >> n; 
     while (!positive){ 
      if (n >= 0){ 
       positive = true; 
      } 
      else { 
       cout << "Please enter a positive number for the size of the matrix."; 
       cin >> n; 
      } 
     } 
    cout << "Enter the values of the elements of array A" << endl; 
    for (i = 0; i < n; i++){ 
     for (j = 0; j < n; j++){ 
      cin >> a[i][j]; 
     } 
    } 
    cout << "Enter the values of the elements of array B" << endl; 
    for (i = 0; i < n; i++){ 
     for (j = 0; j < n; j++){ 
      cin >> b[i][j]; 
     } 
    } 
    cout << "Matrix A:" << endl; 
    for (i = 0; i < n; i++){ 
     for (j = 0; i < n; j++){ 

      cout << a[i][j] << " "; 
     } 
    } 
    cout << "Matrix B:" << endl; 
    for (i = 0; i < n; i++){ 
     for (j = 0; j < n; j++){ 

      cout << b[i][j] << " "; 
     } 
     cout << "\n"; 
    } 
    for (i = 0; i < n; i++){ 
     cout << endl; 
     for (j = 0; j < n; j++){ 
      c[i][j] = a[i][j] - b[i][j]; 

     } 
     cout << "\n"; 
    } 
    cout << "Matrix A - Matrix B: " << endl; 
    for (i = 0; i < n; i++){ 
     for (j = 0; j < n; j++){ 
      cout << c[i][j] << " "; 
     } 
     cout << "\n"; 
    } 
    return 0; 
} 
+3

Похоже, вам, возможно, потребуется научиться использовать отладчик для ввода кода. С хорошим отладчиком вы можете выполнить свою программу по очереди и посмотреть, где она отклоняется от ожидаемого. Это важный инструмент, если вы собираетесь заниматься программированием. Дальнейшее чтение: ** [Как отлаживать небольшие программы] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) ** – NathanOliver

ответ

1

Возможно, эта проблема вызывает проблемы?

cout << "Matrix A:" << endl; 
for (i = 0; i < n; i++){ 
    for (j = 0; i < n; j++){ 

     cout << a[i][j] << " "; 
    } 
} 

Изменение для цикла для J (то есть, J < п). Посмотрите, поможет ли это.

+0

Не могу поверить, что я пропустил это! Спасибо огромное! – AddieCaddy

+0

Нет проблем, это распространенная ошибка :). Для получения долгосрочной выгоды, пожалуйста, обратите внимание на рекомендации NathanOliver – Minh

Смежные вопросы