黑马程序员技术交流社区
标题:
打印一个空心菱形
[打印本页]
作者:
小石头39910
时间:
2013-5-4 19:10
标题:
打印一个空心菱形
我是一个在校大学生,我会打印一个实心的菱形,但是不会打印空心菱形,希望各位能够帮助一下,,,
class Test1
{
public static void main(String args[])
{
for(int x=0;x<5;x++)
{
for(int y=x+1;y<5;y++)
{
System.out.print(" ");
}
for(int z= 0;z<=x;z++)
{
System.out.print("* ");
}
System.out.println();
}
for(int x=0;x<5;x++)
{
for(int y=0;y<x;y++)
{
System.out.print(" ");
}
for(int z=x;z<5;z++)
{
System.out.print("* ");
}
System.out.println();
}
}
}
作者:
金辉
时间:
2013-5-4 19:49
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入要打印拼成菱形上半个三角形的行数,rows = ");
int rows = input.nextInt();
int i, j, k; // 初始化变量
for (i = 1; i <= rows; i++) {
// 外层循环控制行数控制台接收的参数rows即为上半个三角形的行数
// 内循环一控制空格的输出
for (j = 1; j <= rows - i; j++)
System.out.print(" ");
// 内循环二控制*的输出
for (k = 1; k <= 2 * i - 1; k++)
// 判断是本行的第一个和最后一个打印*
if (k == 1 || k == 2 * i - 1)
System.out.print("*");
// 其他的都输出空格
else
System.out.print(" ");
System.out.println("");
}
// 下半个三角形
for (i = 1; i <= rows - 1; i++) {
// 外层循环控制行数下半个三角形比上面的少一行所以rows-1
for (j = 1; j <= i; j++)
System.out.print(" ");
for (k = 1; k < (rows - i) * 2; k++)
// 第一个为1最后一个是(rows-i)*2-1,因为k<(row-i)*2不是<=
if (k == 1 || k == (rows - i) * 2 - 1)
System.out.print("*");
else
System.out.print(" ");
System.out.println("");
}
}
}
复制代码
应该是这样吧
作者:
乘鱼飞
时间:
2013-5-4 20:08
本帖最后由 乘鱼飞 于 2013-5-4 20:35 编辑
<blockquote>import java.util.Scanner;
复制代码
import java.util.Scanner;
public class TestLin {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入一个大于1的整数 ");
int num=sc.nextInt(); //键盘录入
if(num>1)
{
printLin(num);
}
else
{
System.out.print("你输入的数字不正确 ");
}
}
public static void printLin(int n)
{
if(n%2==0)//计算菱形大小
n++;
for(int i=0;i<n/2+1;i++)//上半部分
{
for(int j=n/2+1;j>i+1;j--)//打印空白
{
System.out.print(" ");//输出左上角位置的空白
}
for(int j=0;j<2*i+1;j++)//打印 *
{
if(j==0||j==2*i)
{
System.out.print("*");//输出菱形的上半部边缘
}else
{
System.out.print(" ");//输出菱形上半部空心
}
}
System.out.println(" ");
}
//下半部 从 n/2+1开始
for(int i=n/2+1;i<n;i++)
{
for(int j=0;j<i-n/2;j++)//打印空白,空白递增j++
{
System.out.print(" ");
}
for(int j=0;j<2*n-1-2*i;j++)//打印 *
{
if(j==0||j==2*(n-i-1))
{
System.out.print("*");//输出菱形的下半部边缘
}else
{
System.out.print(" ");//输出菱形下半部空心
}
}
System.out.println(" ");
}
}
}
结果演示:
请输入一个大于1的整数
5
*
* *
* *
* *
*
作者:
赵利斌
时间:
2013-5-4 20:13
public class de {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) { // 外层循环是行数
// 空格
for (int j = 0; j < 4 - i; j++) {
System.out.print(" ");
}
System.out.print("*");
for (int j = 0; j <2* i-1 ; j++) {
System.out.print(" ");
}
if(i==0){
System.out.print(" ");
}else{
System.out.print("*");
}
// 换行
System.out.println();
}
for (int i = 4; i >0; i--) { // 外层循环是行数
// 空格
for (int j = 0; j <5- i; j++) {
System.out.print(" ");
}
System.out.print("*");
for (int j = 0; j < 2 * i-3; j++) { // 打印每一行*的个数
System.out.print(" ");
}
if(i==1){
System.out.print(" ");
}else{
System.out.print("*");
}
// 换行
System.out.println();
}
}
}
作者:
黑马-王双
时间:
2013-5-5 21:31
标题:
打印空心菱形
本帖最后由 黑马-王双 于 2013-5-5 21:53 编辑
class Test2
{
public static void main(String args[])
{
abc(7);
}
/*
思路:分为上下三角两个部分。先打印左边的空格数,然后固定打一次星号,
然后继续打空格数,最后打印一次星号
*/
public static void abc(int num) //num表示最长边的星号个数
{
//上三角
for(int x=0;x<num;x++)//x表示上三角的行号
{
for(int y=x+1;y<num;y++)
{
System.out.print(" ");
}
System.out.print("*");
for(int z=0;z<=2*x-2;z++)
{
System.out.print(" ");
if(z==2*x-2)
System.out.print("*");
}
System.out.println();
}
//下三角
for(int x=0;x<num-1;x++)
{
for(int y=0;y<x+1;y++)
{
System.out.print(" ");
}
System.out.print("*");
for(int z=1;z<=2*(num-2-x)-1;z++)
{
System.out.print(" ");
if(z==2*(num-2-x)-1)
System.out.print("*");
}
System.out.println();
}
}
}
作者:
张亚军
时间:
2013-7-18 23:19
lass KongXinLing2
{
public static void main(String[] args)
{
int count1=8;
int count=count1/2+1;
//上半个三角形
for(int i=1;i<=count;i++)
{
//输出空格
for(int j=1;j<=count-i;j++)
{
System.out.print(" ");
}
for(int j=1;j<=i*2-1;j++)
{
if(i==1)
{
System.out.print("*");
}
else
{
if(j==1||j==i*2-1)
{
System.out.print("*");
}
else
{
System.out.print(" ");
}
}
}
System.out.println();
}
//下半个三角形
for(int i=count;i>=1;i--)
{
if(i!=count)
{
//输出空格
for(int j=1;j<=count-i;j++)
{
System.out.print(" ");
}
//输出*
for(int j=1;j<=i*2-1;j++)
{
if(i==1)
{
System.out.print("*");
}else
{
if(j==1||j==i*2-1)
{
System.out.print("*");
}
else
{
System.out.print(" ");
}
}
}
//换行
System.out.println();
}
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2