C++简单矩阵

C++ simple matrix

本文关键字:简单 C++      更新时间:2023-10-16

有人能修复我的代码吗?这是当我在c++中输入数字5时应该显示的结果

1.2 63 7 104 8 11 135 9 12 14 15

我的结果:

1.2 63 7 104 8 11 145 9 12 15 18

我的代码:

#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
    int n,i,j;
    cout<<"insert number"<<endl;
    cin>>n;
    for (i=1;i<=n;i++)
    { 
        int y=1;
        int g=1;
        cout<<i<<"     ";
        for (j=1;j<=i-1;j++)
        {
            int x=n;
            int b=i;
            x--;
            g--;
            cout<<(x*y)+b+g<<"      ";
            y++;
        }
        cout<<endl;
    }
    getch ();
}

我做错了什么?很抱歉,如果我的代码一团糟,我是一个新的c++学习者。

你可以这样做:

#include <iostream>
using namespace std;
int main()
{
    int n , i ,j, sum;
    cout << "masukkan bilanga" << endl;
    cin >> n;
    for(i = 0; i < n; i++)
    {
        cout << i + 1 << "     ";
        sum = i + 1;
        for(j = 0; j < i; j++)
        {
            sum += n - 1 - j;
            cout << sum << "     ";
        }
        cout << endl;
    }
    return 0;
}

其中的关键点是,您希望以列为主的方式打印所有数字,从1开始,直到创建三角形nxn矩阵。

从输出中可以很容易地看到,下一列的每个元素都是当前元素,加上n - 1,当我们前进到矩阵的右侧时,该因子减少了一。

试试这个代码,希望这就是你需要的:

#include <iostream>
#include <string>
void printMatrix(int number);
void main()
{
  int number = 1;
  std::cout << "Enter a number: ";
  std::cin >> number;
  printMatrix(number);
}
void printMatrix(int number) {
    std::cout << std::endl;
    for (int i = 1; i <= number; i++) {
        std::cout << i << "  ";
        int n = i;
        for(int j = 1; j < i; j++) {
            n += number - j;
            std::cout << n << "  ";
        }
        std::cout << std::endl;
    }
}