我参加了我的第一个编程课程,并对我们已经完成的作业提出了一些问题。
我试图将以下图案打印到屏幕上:
*
***
*****
*******
该图案应该包含5行,每个后续行在上面的行中有2个额外的星号,大致呈金字塔形状。
我一直在努力创建使用for
循环执行此操作的代码(这是说明的一部分),这是我目前所拥有的:
int main ()
{
int row;
int col;
for (row = 1; row <= 5; row++) //rows
{
for (col = 1; col <= row; col++) //columns
{
printf_s("*");
}
printf_s("\n");
}
return 0;
}
我的代码的问题是我没有考虑所需的空格来正确对齐。使用上面的当前代码,输出结果如下:
*
**
***
****
*****
我希望有人可以指出我正确的方向,如何重新编写我的代码,以获得正确的对齐方式和正确的前导空格数。
提前谢谢。
答案 0 :(得分:0)
外部循环用于每一行,内部循环在行中打印许多星号。你在行之前省略了合适数量的空格。
如果将外循环更改为更常规:
for (row = 0; row < 5; row++)
它使字符计算算法更简单。
内部循环应该在前面由另一个循环打印4 - row
个空格。
星号循环需要打印row * 2 + 1
星号。
答案 1 :(得分:0)
您有一个循环来打印星号,但在此之前您没有打印出任何空格。
您打印的星号数不正确。例如,当应该是3时,你的输出在第二行只有2 *
。
你可以做到
printf("%*s", NUM, "");
打印NUM
空格而不是使用单独的循环。
像
这样的东西for (row = 0; row < ROWS ; row++) //rows
{
printf("%*s", ROWS-1-row, "");
for (col = 0; col < row*2+1; col++) //columns
{
printf("*");
}
printf("\n");
}
如果行编号从0
开始,则每行中的星号数是行号的两倍多。
ROWS
表示要打印的行数。
答案 2 :(得分:0)
试试这个:
r - 行数
s - 增量
i - 行索引
j - 列索引
开始 - 开始计数*
{ //
// Some session logic
//
}
Client client = ClientBuilder.newClient();
WebTarget baseTarget =
client.target("https");
/
MultivaluedMap<String, String> formData = new
MultivaluedHashMap<String, String>();
formData.add("usr", "@gmail.com");
formData.add("pwd", "mat");
Response response = baseTarget.request().post(Entity.form(formData))
System.out.println("----Second-time--method invoked GET-------");
Response resp_sec = base2Target.request().get(); //second time in session perform action client side