如何在C中打印对角线?
How to print a diagonal line in C?
我正在尝试用 C 语言制作对角线,就像制作金字塔一样。
#include <cs50.h>
#include <stdio.h>
int main(void)
{
char builder = get_char("Building Material: ");
int size = get_int("Line Size: ");
for (int i = 0; i < size; i++)
{
for (int j = size - 1; j < i + size; j--)
{
printf(" ");
}
printf("%c\n", builder);
}
}
这是我迄今为止最好的一个,但我仍然无法确定应该如何添加空格。
I don't wanna make a pyramid.
这里有什么问题?
一种这样的方式如下:
#include <stdio.h>
int main(void)
{
char builder = '#';
int size = 5;
for(int i = 0; i < size; i++)
{
for(int j = 0; j < size; j++)
{
if(j == i)
printf("%c", builder);
else
printf(" ");
}
printf("\n");
}
return 0;
}
输出
$ gcc main.c -o main.exe; ./main.exe;
#
#
#
#
#
我不知道你的问题到底出在哪里。您对代码问题的描述太少了。
作为旁注:
您使用了很多冗余代码。如果要打印从右上角到左下角的对角线,可以这样简化代码:
#include <cs50.h>
#include <stdio.h>
int main(void)
{
char builder = get_char("Building Material: ");
int size = get_int("Line Size: ");
for ( ; 0 < size ; size-- )
{
printf("%*c\n", size, builder);
}
}
*
用于设置宽度
示例输入:
Building Material: c
Size: 12
示例输出:
c
c
c
c
c
c
c
c
c
c
c
c
我正在尝试用 C 语言制作对角线,就像制作金字塔一样。
#include <cs50.h>
#include <stdio.h>
int main(void)
{
char builder = get_char("Building Material: ");
int size = get_int("Line Size: ");
for (int i = 0; i < size; i++)
{
for (int j = size - 1; j < i + size; j--)
{
printf(" ");
}
printf("%c\n", builder);
}
}
这是我迄今为止最好的一个,但我仍然无法确定应该如何添加空格。
I don't wanna make a pyramid.
这里有什么问题?
一种这样的方式如下:
#include <stdio.h>
int main(void)
{
char builder = '#';
int size = 5;
for(int i = 0; i < size; i++)
{
for(int j = 0; j < size; j++)
{
if(j == i)
printf("%c", builder);
else
printf(" ");
}
printf("\n");
}
return 0;
}
输出
$ gcc main.c -o main.exe; ./main.exe; # # # # #
我不知道你的问题到底出在哪里。您对代码问题的描述太少了。
作为旁注:
您使用了很多冗余代码。如果要打印从右上角到左下角的对角线,可以这样简化代码:
#include <cs50.h>
#include <stdio.h>
int main(void)
{
char builder = get_char("Building Material: ");
int size = get_int("Line Size: ");
for ( ; 0 < size ; size-- )
{
printf("%*c\n", size, builder);
}
}
*
用于设置宽度
示例输入:
Building Material: c
Size: 12
示例输出:
c
c
c
c
c
c
c
c
c
c
c
c