牵风 发表于 2021-11-12 17:40:39

为什么第二次的菱形无法输出哪里错了

#include <stdio.h>

int main() {
        int i,j,k,x;
        int t;//次数
        char ch;//输入的字符
        int n;//行数
        scanf("%d",&t);
        for(i=1; i<=t; i++) {
                scanf("%c %d",&ch,&n);
                for(j=1; j<=n; j++) { //上三角
                        for(k=1; k<=n-j; k++) {
                                printf(" ");
                        }
                        for(k=1; k<=2*j-1; k++) {
                                printf("%c",ch);
                        }
                        printf("\n");
                }
                for(j=n-1; j>=1; j--) { //下三角
                        for(k=n-j; k>=1; k--) {
                                printf(" ");
                        }
                        for(k=1; k<=2*j-1; k++) {
                                printf("%c",ch);
                        }
                        printf("\n");
                }
        }
        return 0;
}

jackz007 发表于 2021-11-12 17:46:21

       对输入输出的要求是什么?

牵风 发表于 2021-11-12 17:52:48

jackz007 发表于 2021-11-12 17:46
对输入输出的要求是什么?

输入的第一行是整数T(0<T<=100),表示测试数据的组数。每一组测试数据只有一行,分别为字符ch和整数n,两者之间有一个空格。该行没有其它多余的符号
对应每组输入,输出一个边长为n,由字符ch组成的菱形。

jackz007 发表于 2021-11-12 18:14:33

#include <stdio.h>

void foo(char ch , int n)
{
      int b , i , j                                             ;
      for(i = 0 ; i < 2 * n ; i ++) {
                b = (i > n) ? 2 * n - i : i                         ;
                for(j = 0 ; j < n - b ; j ++) printf(" ")         ;
                for(j = 0 ; j < 2 * b - 1 ; j ++) printf("%c" , ch) ;
                printf("\n")                                        ;
      }
}

int main(void)
{
      int d , i , t                         ;
      char c                              ;
      scanf("%d" , & t)                        ;
      for(i = 0 ; i < t ; i ++) {
                fflush(stdin)                      ;
                scanf("%c %d" , & c , & d)   ;
      }
      for(i = 0 ; i < t ; i ++) foo(c , d) ;
}
      编译、运行实况:
D:\0002.Exercise\C>x
5
* 3
+ 4
! 5
& 6
$ 7

*
***
*****
***
*

   +
+++
+++++
+++++++
+++++
+++
   +

    !
   !!!
!!!!!
!!!!!!!
!!!!!!!!!
!!!!!!!
!!!!!
   !!!
    !

   &
    &&&
   &&&&&
&&&&&&&
&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&
&&&&&&&
   &&&&&
    &&&
   &

      $
   $$$
    $$$$$
   $$$$$$$
$$$$$$$$$
$$$$$$$$$$$
$$$$$$$$$$$$$
$$$$$$$$$$$
$$$$$$$$$
   $$$$$$$
    $$$$$
   $$$
      $

D:\0002.Exercise\C>

牵风 发表于 2021-11-12 18:44:16

jackz007 发表于 2021-11-12 18:14
编译、运行实况:

可不可以·输入一组数据然后紧接着输出{:5_92:}

jackz007 发表于 2021-11-12 21:50:56

牵风 发表于 2021-11-12 18:44
可不可以·输入一组数据然后紧接着输出

#include <stdio.h>

void foo(char ch , int n)
{
      int b , i , j                                             ;
      for(i = 0 ; i < 2 * n ; i ++) {
                b = (i > n) ? 2 * n - i : i                         ;
                for(j = 0 ; j < n - b ; j ++) printf(" ")         ;
                for(j = 0 ; j < 2 * b - 1 ; j ++) printf("%c" , ch) ;
                printf("\n")                                        ;
      }
}

int main(void)
{
      int d , i , t                                                ;
      char c                                                         ;
      scanf("%d" , & t)                                              ;
      for(i = 0 ; i < t ; i ++) {
                fflush(stdin)                                          ;
                if(scanf("%c %d" , & c , & d) > 1 && d > 2) foo(c , d) ;
                else printf("输入无效!\n")                           ;
                printf("\n")                                           ;
      }
}
      编译、运行实况
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
5
* 8

       *
      ***
   *****
    *******
   *********
***********
*************
***************
*************
***********
   *********
    *******
   *****
      ***
       *

+ 9

      +
       +++
      +++++
   +++++++
    +++++++++
   +++++++++++
+++++++++++++
+++++++++++++++
+++++++++++++++++
+++++++++++++++
+++++++++++++
   +++++++++++
    +++++++++
   +++++++
      +++++
       +++
      +

# 10

         #
      ###
       #####
      #######
   #########
    ###########
   #############
###############
#################
###################
#################
###############
   #############
    ###########
   #########
      #######
       #####
      ###
         #

$ 11

          $
         $$$
      $$$$$
       $$$$$$$
      $$$$$$$$$
   $$$$$$$$$$$
    $$$$$$$$$$$$$
   $$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$
   $$$$$$$$$$$$$$$
    $$$$$$$$$$$$$
   $$$$$$$$$$$
      $$$$$$$$$
       $$$$$$$
      $$$$$
         $$$
          $

@ 12

         @
          @@@
         @@@@@
      @@@@@@@
       @@@@@@@@@
      @@@@@@@@@@@
   @@@@@@@@@@@@@
    @@@@@@@@@@@@@@@
   @@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@
   @@@@@@@@@@@@@@@@@
    @@@@@@@@@@@@@@@
   @@@@@@@@@@@@@
      @@@@@@@@@@@
       @@@@@@@@@
      @@@@@@@
         @@@@@
          @@@
         @


D:\00.Excise\C>
页: [1]
查看完整版本: 为什么第二次的菱形无法输出哪里错了