多个输入的时候就需要用到scanf()!=EOF 这个题也做了两遍,每次都要改,其实这一题也就是要分上金字塔和下金字塔然后循环先打印空格,然后再循环打印* 每一个内层循环都与外层循环的i相关不然无法达到j循环次数的改变; #include<bits/stdc++.h> using namespace std; int main(){ int n; while(scanf("%d",&n)!=EOF){ for(int i=1;i<=n;i++){ for(int j=n-1;j>=i;j--){ printf(" "); } for(int j=1;j<=2i-1;j++){ printf(""); } printf("\n"); } for(int i=n-1;i>0;i--){ for(int j=n-1;j>=i;j--){ printf(" "); } for(int j=2i-1;j>0;j--){ printf(""); } printf("\n"); } } return 0; }