Advertisement
heroys6

Unlimited matrix

Aug 28th, 2015
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.28 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <cstdlib>
  4. #include <cctype>
  5. #include <cstring>
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     vector<vector<double> > rows;
  11.     vector<double> columns;
  12.     char str[80], *ptr;
  13.  
  14.     cout << "Enter value of matrix element or key-letters\n"
  15.         << "[N] to start typing next matrix line\n"
  16.         << "[Q] to stop typing\n\n"
  17.         << "First line:\n";
  18.  
  19.     do {
  20.         cout << ">> ";
  21.         cin >> str;
  22.         if (strtod(str, &ptr))
  23.             columns.push_back(strtod(str, &ptr));
  24.         else if (strchr("n", tolower(str[0])) && !isalpha(tolower(str[1]))) {
  25.             cout << "Next line:\n";
  26.             rows.push_back(columns);
  27.             columns.clear();
  28.         }
  29.         else if (strchr("q", tolower(str[0])) && !isalpha(tolower(str[1]))) {
  30.             cout << "Quitting...\n";
  31.             rows.push_back(columns);
  32.             break;
  33.         }
  34.         else {
  35.             cout << "Enter only element value or key-letters!\n";
  36.             continue;
  37.         }
  38.        
  39.     } while (1);
  40.  
  41.     unsigned int i, j;
  42.  
  43.     cout << "\t\t\tEntered matrix:\n\n";
  44.  
  45.     for (i = 0; i < rows.size(); i++) {
  46.         if (rows[i].size() == 0) {
  47.             cout << "\t[empty line]\n";
  48.             continue;
  49.         }
  50.         for (j = 0; j < rows[i].size(); j++)
  51.             cout << rows[i][j] << "\t";
  52.         cout << "\n\n";
  53.     }
  54.     cout << "\n\n";
  55.    
  56.     //system("pause"); // - В Бубунтах пауза не та, но и так сойдёт
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement