using System;
namespace pattern
{
class mat
{
public static void Main(string[] args)
{
int i,j;
Console.WriteLine("Enter the order of square matrix");
string ip=Console.ReadLine();
int n=Int32.Parse(ip);
int[ , ] a=new int[n,n];
//string[ , ] b=new string[n,n];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i,j]=-1;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i==j)
{
a[i,j]=0;
// Console.WriteLine(a[i,j]);
}
else if(j>i)
{
a[i,j]=1;
}
//b[i,j]=a[i,j].ToString();
}
}
Console.WriteLine("Pattern:");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{ Console.Write("{0,-3}",a[i, j]);
// Console.Write("{0}",b[i, j].PadRight(3));
}
Console.WriteLine();
}
}
}``
}
输出:
Enter the order of square matrix:
5
Pattern:
0 1 1 1 1
-1 0 1 1 1
-1 -1 0 1 1
-1 -1 -1 0 1
-1 -1 -1 -1 0
程序在逻辑上是正确的但是,如果我在Console.WriteLine中使用{0,-3}来打印数字编译器显示数字之间有更多空格并且如果我使用{0 ,-2}编译器显示它们之间的空间较小,我不能使用{0,-2.5}。 请帮我解决这个问题。
提前致谢
答案 0 :(得分:2)
如果您只想统一显示数字,请尝试:
Console.Write("{0,3}",a[i, j]);