C#用for写菱形,图片上的(8)题

 

public void lingxing (){
 
			//第一种方法
			for (int a = 1; a <= 10; a++) {
				for (int b = 9; b >= a; b--) {
					Console.Write (" ");
				}
 
				for (int c = 1; c <= a; c++) {
					Console.Write ("*");
				}
				for (int e = 1; e<a ; e++) {
					Console.Write ("*");
				}
				for (int f = 9; f >= 1; f--) {
					Console.Write (" ");
				}
 
				Console.WriteLine ();
 
			}
			for (int a = 1; a <= 9; a++) {
				for (int b = 1; b <= a; b++) {
					Console.Write (" ");
				}
				for (int c = 9; c >= a; c--) {
					Console.Write ("*");
				}
				for (int b = 8; b >= a; b--) {
					Console.Write ("*");
				}
 
				for (int c = 1; c <= a; c++) {
					Console.Write (" ");
				}
 
 
 
				Console.WriteLine ();
			}

直接打印就好了啊。

帮助到你能点个采纳吗,谢谢~ 效果如下

 

using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp1
{

	class Program
	{
		static void Main(string[] args)
		{
            int n = int.Parse(Console.ReadLine());
            var list = new List<string>();

            var s = "";
            //for只需要组合前半个,后半个翻转下数组去掉第一个就行
            for (var i = 0; i < n; i++)
            {
                s = "";
                var num = n + i + 1;
                var start = n - i;
                for (var j = 1; j < num; j++)
                {
                    if (j < start) s += " ";
                    else s += (j == start || j == num - 1) ? "*" : " ";
                }
                list.Add(s);
            }

            Console.Write(String.Join("\n",list));
            Console.WriteLine();
            list.Reverse();//翻转
            Console.Write(String.Join("\n",list.Skip(1).ToList()));//去掉第一个后打印

            Console.ReadKey();
		}
	}
}