c语言,请帮我看一下哪错了,帮我改一下,我这和题目要求不一样,也不知道怎么改了,拜托,题目代码如下

2025-03-13 15:51:46
推荐回答(2个)
回答1:

#include
#include
int main()
{
 int n;
 int i, j, k;
 scanf("%d", &n);
 for (i = 1; i <= n; i++) {
  for (j = 0; j < n - i; j++)
   printf("   ");//三个空格
  for (j = 0; j < i; j++) {
   k = pow(2, j);//放到printf里好像会出问题就提出来了
   printf("%3d", k);//输出占三个字符的位置
  }
  for (j = i - 1; j > 0; j--) {
   k = pow(2, j-1);
   printf("%3d", k);
  }
  printf("\n");
 }
}

回答2:

#include 
#include 
int main()
{
    int s=0;
    int i=1,j=1,k;
    printf("请输入行数:");
    scanf("%d",&s);
    for(i=1;i<=s;i++){
        for(j=1;j<=s-i;j++)
            printf("  ");
        for(k=1;k            printf("%2d",k);
        for(k=i;k>0;k--)
            printf("%2d",k);            
        printf("\n");
    }
    return 0;
}

如图所示,你只是把正序和逆序弄反了,而且顺序的启停范围差一点而已。望采纳。。。。。。