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();
}

ここに画像の説明を入力 真ん中の行は2回繰り返す

数字から三角形を出力します。問題は、真ん中の行が 2 回繰り返されることです。私の質問は、どうすればループを変更できるので、中央の行番号が 2 回繰り返されるのでしょうか? 助けてください、ありがとう!

4

4 に答える 4

3

ええと、変更

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

for (x=num1-1; x>=0; x--){
于 2012-12-10T19:31:39.150 に答える
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 に答える
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 に答える
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 に答える