C 双金字塔模式:无法获得所需的输出

C 双金字塔模式:无法获得所需的输出,c,C,我没有得到我的C程序所需的输出。有人能看一下代码并帮我纠正错误吗 我的代码的期望输出和实际输出为: 我的代码是: #include <stdio.h> #include <conio.h> void main() { int i,j,k; int blank=0; int lines = 6; char symbol='A'; int temp ; int diff[7]= {0,1,3,5,7,9,11}; k=0; for(i=lines;i>=0;i--)

我没有得到我的C程序所需的输出。有人能看一下代码并帮我纠正错误吗

我的代码的期望输出和实际输出为:

我的代码是:

#include <stdio.h>
#include <conio.h>
void main()
{
int i,j,k;
int blank=0;
int lines = 6;
char symbol='A';
int temp ;
int diff[7]= {0,1,3,5,7,9,11};
k=0;

for(i=lines;i>=0;i--)
{
   printf("\n");
   symbol = 'A';

   for(j=i;j>=0;j--)    
        printf("%c ",symbol++);

   blank = diff[k++];   

   for(j=0;j<blank;j++)
        printf(" ");    


   symbol = 'F' - (blank/2);

   if (blank== 0)
       temp = i-1;
   else
       temp = i;

   for(j=0;j<=temp;j++)  
       printf("%c ",symbol--);

}
getch();
}
#包括
#包括
void main()
{
int i,j,k;
int blank=0;
整数行=6;
char symbol='A';
内部温度;
int-diff[7]={0,1,3,5,7,9,11};
k=0;
对于(i=行;i>=0;i--)
{
printf(“\n”);
符号='A';
对于(j=i;j>=0;j--)
printf(“%c”,符号++);
blank=diff[k++];

对于(j=0;j您的“diff”数组太小。您正在解释模式左侧缺少的字符,而不是右侧缺少的字符。请尝试生成前三个元素
{0,2,6…}
,看看是否有效,然后从中推断出正确的模式您的“diff”数组太小。您正在考虑模式左侧缺少的字符,而不是右侧缺少的字符。请尝试使前三个元素
{0,2,6…}
看看这是否有效,然后从中推断出正确的图案

首先,您打印的空白数量是错误的。您需要的数字可以通过一小段算术计算出来

其次,你不需要复杂的计算来计算出空格后第一个要打印的符号,因为你已经计算出来了


(编辑,以便撤销否决票)

首先,您打印的空格数错误。您需要的数字可以通过一小段算术计算出来

其次,你不需要复杂的计算来计算出空格后第一个要打印的符号,因为你已经计算出来了


(编辑后可以撤回否决票)

您的代码编写正确。您必须更改行

for(j=0;j<blank;j++)
    printf(" ");  

不要忘记包含标题。

您的代码编写方法正确。您必须更改行

for(j=0;j<blank;j++)
    printf(" ");  

而且不要忘记包含标题。

您需要使用更多的空格


使用0、2、6…等等

您需要使用更多的空格

使用0、2、6…等等

问题就在这里

for(j=0;j<blank;j++)
    printf(" ");    
            ^
            A
问题就在这里

for(j=0;j<blank;j++)
    printf(" ");    
            ^
            A


我从此处阻止了该链接-您能说出问题中的问题吗?包含的标题在哪里?请查看此链接..这是一个设计模式问题..我无法说出它。可能是一个“”不够宽吗?在不应该有字母,但应该有空格的地方,我想你没有添加额外的空格。你能数一数输出中“F”和“F”之间的空格吗?因为我认为只有2个而不是期望的3(2个用于填充1而不是字母)。这是设计模式中的问题,而不是设计模式问题。该链接从此处对我被阻止-你能说出问题中的问题吗?包含的标题在哪里?请查看此链接。。这是设计模式问题。。我无法说出。可能是一个“”不够宽吗?在不应该有字母,但应该有空格的地方,我想你没有添加额外的空格。你能数一数输出中“F”和“F”之间的空格吗?因为我认为只有2个而不是期望的3(2个用于填充1而不是字母).这是设计模式的问题,而不是设计模式的问题。请投票人解释投票失败的原因vote@haccks对不起?stack overflow中不要求用勺子将答案发送给其他人实际上我只想撤回我的否决票。@haccks:再次单击down按钮即可。不,伙计,这样做太晚了。我可以在在编辑之后,请投票人解释一下投票的原因vote@haccks抱歉?在堆栈溢出中不要求用勺子将答案发送给其他人实际上我只想撤回我的否决票。@haccks:再次单击“否决票”按钮即可。不,伙计,这样做太晚了。我只能在编辑后撤回。否决票必须留下投票人必须留下评论。
   printf("  "); 
           ^^
           A(space)