牵风 发表于 2021-11-14 15:50:47

第二次输出菱形输出了多次换行

#include <stdio.h>

int main() {
        int n;
        int a,b;
        int t;
        char ch;
        //scanf("%d",&t);

        while((scanf("%c %d",&ch,&n))!=EOF) {

                for(int i=1; i<=n; i++) {
                        for(int j=1; j<=n-i; j++) {
                                printf(" ");
                        }
                        for(int j=1; j<=2*i-1; j++) {
                                printf("%c",ch);
                        }
                        printf("\n");
                }
                for(int i=n-1; i>=1; i--) {
                        for(int j=1; j<=n-i; j++) {
                                printf(" ");
                        }
                        for(int j=2*i-1; j>=1; j--) {
                                printf("%c",ch);
                        }
                        printf("\n");
                }
        }
        return 0;
}

jackz007 发表于 2021-11-14 16:36:05

      在 while 循环的最后添加这一条语句:
      fflush(stdin) ;

jhq999 发表于 2021-11-14 16:46:06

本帖最后由 jhq999 于 2021-11-14 16:48 编辑

while((scanf("%c %d",&ch,&n))!=EOF) {
                        getchar();////////////////////把缓冲区的'\n'取出
                for(int i=1; i<=n; i++) {
                        for(int j=1; j<=n-i; j++) {
                              printf(" ");
                        }
                        for(int j=1; j<=2*i-1; j++) {
                              printf("%c",ch);
                        }
                        printf("\n");
                }
                for(int i=n-1; i>=1; i--) {
                        for(int j=1; j<=n-i; j++) {
                              printf(" ");
                        }
                        for(int j=2*i-1; j>=1; j--) {
                              printf("%c",ch);
                        }
                        printf("\n");
                }
      }
页: [1]
查看完整版本: 第二次输出菱形输出了多次换行