[英]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);
}
}
这是迄今为止我最好的一个,但我仍然无法解决如何添加空格。
我不想做金字塔。
这里有什么问题?
一种这样的方法如下:
#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;
}
Output
$ 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
示例 output:
c
c
c
c
c
c
c
c
c
c
c
c
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.