2017-09-17 90 views
1

我要问的是这样一些数字:(是一个矩阵) INPUT:如何打印一个矩阵,同一列的值完全相同?

7 1 
13 5 

并打印自己的“广场”,但打印同一列的值完全齐平权这样的: OUTPUT:

49 1 
169 25 

而我所得到的是这样的: OUTPUT:

49 1 
169 25 

我只想知道如何打印矩阵与同一列的值完全冲刷正确。谢谢!

EDITED 这是我的代码:

#include <iostream> 
#include <math.h> 
#include <iomanip> 

using namespace std; 

int main() 
{ 
    int N,cont=0,M,x=4,contx=0; 

    cin>>N; 
    while(cont<N){ 
     cin>>M; 

     double Q[M][M]; 

     for(int i=0; i<M; i++){ 
      for(int j=0; j<M; j++){ 
       cin>>Q[i][j]; 
      } 
     } 

     cout<<"Quadrado da matriz #"<< x+contx <<endl; 
     contx=contx+1; 

     for(int i=0; i<M; i++){ 
      for(int j=0; j<M; j++){ 
       Q[i][j]= pow(Q[i][j],2);     
       cout << fixed << setprecision(0)<< Q[i][j]<<" "; 
      } 
      cout<<"\n"; 
     } 
     cout<<endl; 
     cont=cont+1; 
    } 

    return 0; 
} 

其他例子是: Ejemplo2

+0

您可以使用'setw'机械手,从'',定义*输出字段宽度*。我认为默认情况下,任何输出项目都在其字段中进行了正确调整。如果你想明确说明,你可以使用'right'操纵器。 –

+0

更复杂的是,您可以使用HTML表格输出HTML,并在浏览器中显示该HTML。 :-) –

+0

修复了你的标题。 –

回答

0

简单的例子TU如何使用运输及工务局局长

设置要输出操作中使用的字段宽度。

行为如同构件宽度被称为具有n个作为在其上插入了流/提取为操纵器的参数(其可以被插入/输入流或输出流中提取)。

for(int i = 0; i < M; i++) { 
     for(int j = 0; j < M; j++) { 
      Q[i][j] = pow(Q[i][j], 2);     
      cout << std::setw('field width here') << Q[i][j] << " "; 
     } 
     std::cout << "\n"; 
    } 
0

你有一个矩阵

#include <iostream> 
#include <sstream> 
#include <string> 
#include <iomanip> 
using namespace std; 


    int main() 
{ 
    int M = 2; 
    double Q[M][M]; 

    int maxdigits = 0; 
    // to retrive the max number of digits 

    for (int i = 0; i < M; i++) { 
     for (int j = 0; j < M; j++) { 
      cin >> Q[i][j]; 
     } 
    } 

    for (int i = 0; i < M; i++) { 
     for (int j = 0; j < M; j++) { 
      if (numDigits(Q[i][j]) > maxdigits) { 
       maxdigits = numDigits(Q[i][j]); 
      } 
     } 
    } 
    maxdigits += 1; 
    system("CLS"); 

    for (int i = 0; i < M; i++) { 
     for (int j = 0; j < M; j++) { 
      cout << setw(maxdigits - numDigits(Q[i][j])) << ""; 
      cout << Q[i][j]; 
     } 
     cout << endl; 
    } 
} 

的细胞来定义最大数字,这里是numDigits功能代码

int numDigits(double number) 
{ 
    stringstream ss; 
    ss << number; 
    int len = ss.str().length(); 
    return len; 
} 
+0

我需要打印同一列干脆右对齐 – Ela96

+0

的@ Ela96号码,然后使用“运输及工务局局长” –

+0

你是什么意思干脆? @ Ela96 –

相关问题