当前位置:编程学习 > C#/ASP.NET >>

C#画一个非空心的菱形?

需要一个最简单的方法,提示如下:
比如说n=5时,每一行都输出*号,应该是下面的图形
*****
*****
*****
*****
*****

那要出现的*号全部都出现在上面了,只是有些地方要改成空格而已

效果图如下;
答案:
using System;
using System.Collections.Generic;
using System.Text;

namespace temp
{
class Class9
{
static void Main(string[] args)
{
Console.WriteLine("请输入菱形边长");
string s = Console.ReadLine();
int i = 0;
try
{
i = int.Parse(s);
}
catch
{
Console.WriteLine("请输入大于2的数");
}
if (i < 2)
{
Console.WriteLine("请输入大于2的数");
}
for (int j = 1; j <= i; j++)//打印上半个菱形
{
for (int k = 0; k < i - j; k++)
{
Console.Write(" ");
}
Console.Write("*");
if (j == 1)
{
Console.Write("\n");
continue;
}
for (int k = 1; k <= (j - 1) * 2 - 1; k++)
{
Console.Write(" ");
}
Console.Write("*\n");

}
for (int j = 1; j <= i - 1; j++)//下半个菱形比上半个少1行
{

for (int k = 0; k < j; k++)
{
Console.Write(" ");
}
Console.Write("*");
if (j == i - 1)
{
Console.Write("\n");
continue;
}

for (int k = 1; k <= (i - j - 1) * 2 - 1; k++)
{
Console.Write(" ");
}
Console.Write("*\n");
}
}

}


这是一个由用户定义长度的空心菱形
package com.cilery.com;

public class Sqr {

public static void main(String[] args) {

Sqr sqr = new Sqr();
sqr.doSqr(3);
}

public void doSqr(int l) {
String sqr[][] = new String[2 * l + 1][2 * l + 1];
for (int i = 0; i < 2 * l + 1; i++) {
for (int j = 0; j < 2 * l + 1; j++)
sqr[i][j] = " ";
}
for (int i = 0; i < 2 * l + 1; i++) {
for (int j = 0; j < 2 * l + 1; j++) {
if ((i + j == l) || (i + j == l + 2 * l) || i - j == l|| i - j == l - 2 * l)
sqr[i][j] = "@";
}
}
for (int i = 0; i < 2 * l + 1; i++) {
{
for (int j = 0; j < 2 * l + 1; j++)
System.out.print(sqr[i][j]);
}
System.out.print("\n");
}
}
}

上一个:C#怎么用代码更改数据库的数据
下一个:ASP. NET(C#)画曲线图

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,