我需要创建一个逐个计数的矩阵,内部带有星号,周围有百分号。要求用户输入一个数字,星号,百分号和行数取决于用户输入。
示例:如果用户输入为5,则输出将如下所示......
%%%%%
%***%
%***%
%***%
%%%%%
我正在尝试使用for循环并对其进行编程,以便打印出5个星号宽5个高,从而形成一个小方块,但我不知道如何将每个其他行打印出来百分号。
我已经完成的类似于7c的代码。会有类似的吗?我不知道如何将百分号与它接壤。
到目前为止,这是我的代码。我还没有为7d做任何事情,因为我不知道从哪里开始。我知道我会做一个循环,但我不确定如何启动它。我已将代码放入,以便您可以查看我的变量和其他必要信息。谢谢!
import java.util.Scanner;
public class Project1
{
public static void main(String[] args)
{
System.out.println("************** Question 1 *************************\n");
System.out.println("*\n");
System.out.println("***************************************************\n");
System.out.println("************** Question 2 *************************\n");
char perc = '%';
char ast = '*';
System.out.println(ast+"\n");
System.out.println("***************************************************\n");
System.out.println("************** Question 3 *************************\n");
for (int i = 0; i<=9; i++)
{
System.out.print(ast);
}
System.out.println("\n");
System.out.println("***************************************************");
System.out.println();
System.out.println("************** Question 4 *************************");
System.out.println();
for (int i =0; i<=9; i++)
{
System.out.println(ast);
}
System.out.println();
System.out.println("***************************************************");
System.out.println();
System.out.println("************** Question 5 *************************");
Scanner keyboardInput = new Scanner(System.in);
System.out.println("Please enter a positive number :");
int count = keyboardInput.nextInt();
for (int i=0; i<=count;i++)
{
System.out.print(ast);
}
System.out.println("\n");
System.out.println("***************************************************\n");
System.out.println("************** Question 6 *************************\n");
for (int i=1;i<=count;i++)
{
System.out.print(ast);
if (i%5==0)
{
System.out.println();
}
}
System.out.println();
System.out.println();
System.out.println("***************************************************\n");
System.out.println("************** Question 7a ************************\n");
System.out.println("***************************************************\n");
System.out.println("************** Question 7b ************************\n");
for (int h=0;h<count;h++)
{
for (int w=0;w<count;w++)
{
System.out.print(ast);
}
System.out.println();
}
System.out.println();
System.out.println("***************************************************\n");
System.out.println("************** Question 7c ************************\n");
for(int i=0;i<=count;i++)
{
String x;
if(i%2==0)
x="*";
else
x="%";
for(int w=0;w<count;w++)
{
System.out.print(x);
}
System.out.println();
}
System.out.println();
System.out.println("***************************************************\n");
System.out.println("************** Question 7d ************************\n");
System.out.println("***************************************************\n");
}
}
答案 0 :(得分:1)
您需要特殊情况打印第一行和最后一行,并打印每行中的第一个和最后一个字符。算法将是:
count
%。count-2
“混合”行。 (count-2
代表第一行和最后一行。)要打印“混合”行,您的方法将类似:
count-2
星号。 (count-2
见上文)使用printFullRow()
和printMixedRow()
等帮助函数是个好主意。 (这可能是作业引导你的地方。)一般来说,使用更多辅助函数也是一个好主意。
答案 1 :(得分:0)
你需要做这样的事情:
for (int i=0; i<count;i++)
{
if(i>0 && i<count-1)
System.out.print(ast);
else
System.out.print(perc);
}