#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");
}
}
#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;
}
如图所示,你只是把正序和逆序弄反了,而且顺序的启停范围差一点而已。望采纳。。。。。。