鱼C论坛

 找回密码
 立即注册
查看: 1612|回复: 5

[已解决]为什么第二次的菱形无法输出哪里错了

[复制链接]
发表于 2021-11-12 17:40:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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;
}
最佳答案
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>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-12 17:46:21 | 显示全部楼层
       对输入输出的要求是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-12 17:52:48 | 显示全部楼层
jackz007 发表于 2021-11-12 17:46
对输入输出的要求是什么?

输入的第一行是整数T(0<T<=100),表示测试数据的组数。每一组测试数据只有一行,分别为字符ch和整数n,两者之间有一个空格。该行没有其它多余的符号
对应每组输入,输出一个边长为n,由字符ch组成的菱形。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[100] , i , t                         ;
        char c[100]                                ;
        scanf("%d" , & t)                          ;
        for(i = 0 ; i < t ; i ++) {
                fflush(stdin)                      ;
                scanf("%c %d" , & c[i] , & d[i])   ;
        }
        for(i = 0 ; i < t ; i ++) foo(c[i] , d[i]) ;
}
        编译、运行实况:
D:\0002.Exercise\C>x
5
* 3
+ 4
! 5
& 6
$ 7

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

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

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

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

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

D:\0002.Exercise\C>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-12 18:44:16 | 显示全部楼层
jackz007 发表于 2021-11-12 18:14
编译、运行实况:

可不可以·输入一组数据然后紧接着输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 23:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表