我必须创建一个程序,要求用户输入许多行,然后创建一个弗洛伊德三角形。问题是我似乎没有设法做出这种特殊的模式:
1 2 3 4 5 6 7 8 9 10
I have only managed to creat the basic program
#include <stdio.h>
#include <stdlib.h>
int rows, r, c, a;
int number=1;
int main()
{
printf("Floyd Triangle\n");
printf("--------------");
printf("\nPlease enter an integer number of rows: ");
scanf("%d",&rows);
while(rows<=0)
{
printf("\nYou must enter an integer value: ");
scanf("%d",&rows);
}
for(r=1;r<=rows;r++)
{
for(c=1;c<=r;+c++)
{
printf("%d ", number++);
}
printf("\n");
}
到目前为止,我的代码中没有错误
最佳答案
只需在每行的第一个数字之前打印一些空格
// ...
for (r = 0; r < rows; r++) {
printsomespaces(r, rows); // prints some spaces depending on current row and total rows
for (c = 0; c < r; +c++) {
printf("%d ", number++);
}
printf("\n");
}
// ...
如果您不能编写自己的函数(没有
printsomespaces
),请使用循环: //...
//printsomespaces(r, rows);
for (int space = 0; space < XXXXXXXX; space++) putchar(' ');
//...
其中
XXXXXXXX
是使用r
和rows
进行的一些计算。尝试(未经测试)
2 * (rows - r)
(2是每个数字的宽度:1表示数字+ 1表示空格)。关于c - 弗洛伊德三角右图案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58593016/