我正在尝试用Java编写一个程序来捕获用户的整数(假设数据有效),然后根据整数的大小输出菱形,即用户输入5,输出将是:
--*--
-*-*-
*---*
-*-*-
--*--
到目前为止,我有:
if ( sqr < 0 ) {
// Negative
System.out.print("#Sides of square must be positive");
}
if ( sqr % 2 == 0 ) {
// Even
System.out.print("#Size (" + sqr + ") invalid must be odd");
} else {
// Odd
h = ( sqr - 1 ) / 2; // Calculates the halfway point of the square
// System.out.println();
for ( j=0;j<sqr;j++ ) {
for (i=0;i<sqr;i++) {
if ( i != h) {
System.out.print(x);
} else {
System.out.print(y);
}
}
System.out.println();
}
}
只是输出
--*--
--*--
--*--
--*--
--*--
任何想法,我都在考虑降低h
的价值,但这只会产生钻石的左手边。
答案 0 :(得分:2)
看看你的情况:
if ( i != h )
这仅查看列号(i)和中间点(h)。
您需要一个查看列号和行号的条件。更准确地说,您需要一个条件来查看列号,行号和中间点列号的距离。
由于这是一个家庭作业问题,我会给你确定准确的公式,但如果你需要,我愿意再提一些提示。祝你好运!
答案 1 :(得分:2)
void Draw(int sqr)
{
int half = sqr/2;
for (int row=0; row<sqr; row++)
{
for (int column=0; column<sqr; column++)
{
if ((column == Math.abs(row - half))
|| (column == (row + half))
|| (column == (sqr - row + half - 1)))
{
System.out.print("*");
}
else
{
System.out.print("_");
}
}
System.out.println();
}
}
好的,现在这是代码,但正如我看到S.L. Barth的评论我刚刚意识到这是一个功课。因此,我强烈建议您在将此代码用作final之前了解此代码中的内容。随意提出任何问题!
答案 2 :(得分:1)
您可以使用从
PS F:\Project2020\ServletsInVSCode\servletdemo> mvn clean install
mvn : The term 'mvn' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path
was included, verify that the path is correct and try again.
At line:1 char:1
+ mvn clean install
+ ~~~
+ CategoryInfo : ObjectNotFound: (mvn:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
到 -h
的两个嵌套 for 循环,其中 h
是半个菱形。在以下情况下获得钻石的边缘:
h
如果用户输入 Math.abs(i) + Math.abs(j) == h
,那么 n=5
,一个菱形看起来像这样:
h=2
n=5, h=2
--*--
-*-*-
*---*
-*-*-
--*--
输出:
// user input
int n = 9;
// half a diamond
int h = n / 2;
// output a diamond shape
System.out.println("n=" + n + ", h=" + h);
for (int i = -h; i <= h; i++) {
for (int j = -h; j <= h; j++) {
if (Math.abs(i) + Math.abs(j) == h) {
System.out.print("*");
} else {
System.out.print("-");
}
}
System.out.println();
}