java打印菱形不是很懂,跪求每句的意思和作用。 20
importjava.util.Scanner;classlingxing{publicstaticvoidmain(Stringargs[]){introw;Scann...
import java.util.Scanner;
class lingxing{
public static void main(String args[]) {
int row;
Scanner keyin=new Scanner(System.in);
System.out.print("请输入菱形的行数:");
row=keyin.nextInt();
for(int i=1;i<=row/2+1;i++) {
repeat('',row/2+1-i);
repeat('*',2*i-1);
System.out.println();
{
for(int i=row/2;i>=1;i--){
repeat('',row/2+1-i);
repeat('*',2*i-1);
System.out.println();
}
}
public static void repeat(char c,int m){
for(int i=1;i<=m;i++)System.out.print(ch);
}
} 展开
class lingxing{
public static void main(String args[]) {
int row;
Scanner keyin=new Scanner(System.in);
System.out.print("请输入菱形的行数:");
row=keyin.nextInt();
for(int i=1;i<=row/2+1;i++) {
repeat('',row/2+1-i);
repeat('*',2*i-1);
System.out.println();
{
for(int i=row/2;i>=1;i--){
repeat('',row/2+1-i);
repeat('*',2*i-1);
System.out.println();
}
}
public static void repeat(char c,int m){
for(int i=1;i<=m;i++)System.out.print(ch);
}
} 展开
2个回答
展开全部
import java.util.Scanner;
class 菱形 {
public static void main(String args[]) {
int row;
Scanner keyin = new Scanner(System.in);
System.out.print("请输入菱形的行数:");
row = keyin.nextInt(); //输入的数字整数!
for (int i = 1; i <= row / 2 + 1; i++) {//上半部分三角形:不用担心输入偶数,因为折半+1了;
repeat(" ", row / 2 + 1 - i);//空格:注意这是递减
repeat("*", 2 * i - 1);//星:注意这是递减
System.out.println();//打完一排换行!
}
//下半部分三角形原理同上!
for (int i = row / 2; i >= 1; i--) {
repeat(" ", row / 2 + 1 - i);//递增
repeat("*", 2 * i - 1);//递减!
System.out.println();//换行!
}
}
public static void repeat(String c, int m) {
for (int i = 1; i <= m; i++)
System.out.print(c);
}
/**
*
* 这个程序整体思路:把菱形分成上下两个三角形在打印,因为菱形是奇数
* 上半部分采用了折半+1的算法,所有你输入任何数都不怕!
* 如果5,上面就是3下面就是2
* 如果6上面就是4下面就是3
* 空格采用的算法与打出来的星,相反方式:一个递增一个递减!
*
*
*/
}
追问
大神,这两句能讲解的清楚一点吗?
repeat(" ", row / 2 + 1 - i);
repeat("*", 2 * i - 1);
因为考试可能要分析这两句的含义。
还有for (int i = 1; i <= row / 2 + 1; i++)里的row是什么含义啊o(╥﹏╥)o
展开全部
,,,其实我是学c++的。。。。
但是java应该勉强看懂还是可以的
import java.util.Scanner;
class lingxing{
public static void main(String args[]) {
int row;
Scanner keyin=new Scanner(System.in);
System.out.print("请输入菱形的行数:");//输出提示语
row=keyin.nextInt();//读入
for(int i=1;i<=row/2+1;i++) {//打印菱形上半部分
repeat('',row/2+1-i);//因为空格数量递减,所以i递增,这样这个式子总量递减
repeat('*',2*i-1);//打印*
System.out.println();
{
for(int i=row/2;i>=1;i--){
repeat('',row/2+1-i);//打印空格,菱形上下对称,所以下半部分空格数量是递增的
repeat('*',2*i-1);//打印*
System.out.println();
}
}
public static void repeat(char c,int m){
for(int i=1;i<=m;i++)System.out.print(ch);
}
}
以上意思是我猜的,但是应该不会相差很远,,,毕竟c++和java还是很像的,,
但是java应该勉强看懂还是可以的
import java.util.Scanner;
class lingxing{
public static void main(String args[]) {
int row;
Scanner keyin=new Scanner(System.in);
System.out.print("请输入菱形的行数:");//输出提示语
row=keyin.nextInt();//读入
for(int i=1;i<=row/2+1;i++) {//打印菱形上半部分
repeat('',row/2+1-i);//因为空格数量递减,所以i递增,这样这个式子总量递减
repeat('*',2*i-1);//打印*
System.out.println();
{
for(int i=row/2;i>=1;i--){
repeat('',row/2+1-i);//打印空格,菱形上下对称,所以下半部分空格数量是递增的
repeat('*',2*i-1);//打印*
System.out.println();
}
}
public static void repeat(char c,int m){
for(int i=1;i<=m;i++)System.out.print(ch);
}
}
以上意思是我猜的,但是应该不会相差很远,,,毕竟c++和java还是很像的,,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询