1

我有一个简单的问题。我有这个 C# 代码:

static void Main(string[] args)
{
    int num1, i, j, x, y;
    Console.WriteLine("enter number");
    num1=int.Parse(Console.ReadLine());
    for (i=1; i<=num1; i++){
        for (j=1; j<i+1; j++) {
        Console.Write(i);

        }Console.Write("\n"); 
    }
     for (x=num1; x>=0; x--){
        for (y=0; y<x; y++) {
        Console.Write(x);

        }Console.Write("\n"); 
    }
    Console.ReadLine();
}

在此处输入图像描述 中间线重复两次

从数字中打印三角形。问题是中间线重复了两次。我的问题是我怎样才能改变循环,所以中间的行号会重复两次?希望得到帮助,谢谢!

4

4 回答 4

3

呃改变

for (x=num1; x>=0; x--){

for (x=num1-1; x>=0; x--){
于 2012-12-10T19:31:39.150 回答
2

因为两个 for 循环都包含num1作为包含条件:

for (i=1; i<=num1; i++){
    // num1 is the last number in this loop
}
for (x=num1; x>=0; x--){
    // num1 is the first number in this loop
}

将第一个循环更改为停止 BEFORE num1

for (i=1; i<num1; i++){
于 2012-12-10T19:33:02.567 回答
2
Console.Write("enter number: ");
int num = Int32.Parse(Console.ReadLine());

Enumerable.Range(1, num)
          .Concat(Enumerable.Range(1, num - 1).Reverse())
          .Select(x => String.Join("", Enumerable.Repeat(x.ToString(),x)))
          .ToList()
          .ForEach(line => Console.WriteLine(line));
于 2012-12-10T19:45:14.023 回答
1
    static void Main(string[] args)
{
    int num1, i, j, x, y;
    Console.WriteLine("enter number");
    num1=int.Parse(Console.ReadLine());
    for (i=1; i<num1; i++){
        for (j=1; j<i+1; j++) {
        Console.Write(i);

        }Console.Write("\n"); 
    }
     for (x=num1; x>=0; x--){
        for (y=0; y<x; y++) {
        Console.Write(x);

        }Console.Write("\n"); 
    }
    Console.ReadLine();
}
于 2012-12-10T19:32:57.013 回答