这是它看起来的样子,但是我的另一面已经开启了
00001
00021
00321
04321
54321
如果可以,请向我解释。
它说我必须添加更多细节,所以我写这个不知道是为了什么。
#include<iostream>
#include<time.h>
#include<stdlib.h>
using namespace std;
int main()
{
int t=0,n,tab[100][100]={0},k,j,a;
cin>>n;
for(int i=0;i<n;i++)
{
k=i;
for(int j=0;j<n;j++)
{
if(j<=i)
tab[i][j]=k+1;
k--;
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<tab[i][j]<<" ";
cout<<endl;
}
return 0;
}
答案 0 :(得分:0)
以下是两种方法:一种使用标准算法和函数
#include <iostream>
#include <numeric>
#include <iterator>
int main()
{
const size_t N = 5;
int a[N][N] = {};
for ( size_t i = 0; i < N; i++ )
{
std::iota( std::reverse_iterator<int *>( a[i] + N ),
std::next( std::reverse_iterator<int *>( a[i] + N ), i + 1 ),
1 );
}
for ( const auto &row : a )
{
for ( int x : row ) std::cout << x << ' ';
std::cout << std::endl;
}
return 0;
}
和其他只使用循环的
#include <iostream>
int main()
{
const size_t N = 5;
int a[N][N] = {};
for ( size_t i = 0; i < N; i++ )
{
for ( size_t j = 1; j <= i + 1; ++j ) a[i][N - j] = j;
}
for ( const auto &row : a )
{
for ( int x : row ) std::cout << x << ' ';
std::cout << std::endl;
}
return 0;
}
两个节目输出都是
0 0 0 0 1
0 0 0 2 1
0 0 3 2 1
0 4 3 2 1
5 4 3 2 1