标题:大佬们看看为什么我输出不对呢?
只看楼主
第五先生
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2020-5-7
结帖率:40%
 问题点数:0 回复次数:13 
大佬们看看为什么我输出不对呢?
【问题描述】用递归打印K型图案
【输入形式】一个正整数
【输出形式】K字型的图案
【样例输入】

  5

【样例输出】

  *********

  *******

  *****

  ***

  *

  ***

  *****

  *******

  *********

#include  <stdio.h>
#include  <stdlib.h>
#include  <string.h>

void  showK(int  n,char  ch){
    int m,i,j;
    for(n;n>=1;n--)
    {
        for(m=1;m<=2*n-1;m++){
            printf("*");
        }
        printf("\n");
    }
    for(i=2;i<=n;i++){
        for(j=1;j<=2*i-1;j++)
        {
            printf("*");
        }
        printf("\n");
    }
}
int    main(){
              int    n;
              scanf("%d",&n);
              showK(n,'*');
              return  0;
}
这是我写的代码,我总是输出上半部分。就像这样
  *********

  *******

  *****

  ***

  *
哪里错了,请大家看一看,谢谢!
搜索更多相关主题的帖子: 输出 printf int for include 
2020-05-15 13:10
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:0 
程序代码:
#include  <stdio.h>
#include  <stdlib.h>
#include  <string.h>

void  showK(int  n,char  ch)
{
    int m,i,j;
    for(i=n; i>=1; i--)             //这里使用i或者其他变量,不要更改n的值
    {
        for(m=1; m<=2*i-1; m++)
        {
            printf("*");
        }
        printf("\n");
    }
    for(i=2; i<=n; i++)
    {
        for(j=1; j<=2*i-1; j++)
        {
            printf("*");
        }
        printf("\n");
    }
}
int main()
{
    int n;
    scanf("%d",&n);
    showK(n,'*');
    return  0;
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-05-15 13:29
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
程序代码:
#include <stdio.h>

void print(int n)
{
    n = n * 2 - 1;
    while(n--)
        putchar('*');
    puts("");
}

void showK(int n)
{
    if(n == 1)
    {
        puts("*");
        return;
    }
    print(n);
    showK(n - 1);
    print(n);
}

int main(int argc, char *argv[])
{
    int n;
    scanf("%d", &n);
    showK(n);    
    return 0;
}


[此贴子已经被作者于2020-5-15 15:13编辑过]


https://zh.
2020-05-15 13:48
第五先生
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2020-5-7
得分:0 
回复 2楼 纯蓝之刃
解决了,谢谢
2020-05-15 13:56
第五先生
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2020-5-7
得分:0 
回复 3楼 lin5161678
嗯嗯,好的,谢谢帮助修改。
2020-05-15 13:57
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
得分:0 
循环减2,单独处理下负数
程序代码:
#define _CRT_SECURE_NO_WARNINGS

#include  <stdio.h>
#include  <stdlib.h>
#include  <string.h>

void  showK(int  n, char  ch) {
    int cols = 2 * n - 1;
    for (int i = cols; i > -cols; i-=2) {
        int c = i > 0 ? i : -i+2;
        for (int j = 0; j < c; j++) putchar('*');
        putchar('\n');
    }
}
int main() {
    int    n;
    scanf("%d", &n);
    showK(n, '*');
    return  0;
}
2020-05-15 14:06
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
得分:0 
再少一个子循环
程序代码:
#define _CRT_SECURE_NO_WARNINGS

#include  <stdio.h>
#include  <stdlib.h>
#include  <string.h>

void  showK(int  n, char  ch) {
    int cols = 2 * n - 1;
    for (int i = cols; i > -cols; i -= 2) {
        int c = i > 0 ? i : -i + 2;
        printf("%*.*s%c\n", c-1,c-1, "***************************", '*');
    }
}
int main() {
    int    n;
    scanf("%d", &n);
    showK(n, '*');
    return  0;
}
2020-05-15 14:26
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
题目要求递归 结果没人看得见吗

https://zh.
2020-05-15 15:10
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
得分:0 
递归版
程序代码:
#define _CRT_SECURE_NO_WARNINGS

#include  <stdio.h>
#include  <stdlib.h>
#include  <string.h>

void  showK(int  n, char  ch) {
    int curCols = 2 * n - 1;
    int c = curCols > 0 ? curCols : -curCols+2;
    printf("%*.*s%c\n", c - 1, c - 1, "***************************", '*');
    if (curCols != 1) {
        showK(n - 1, ch);
        printf("%*.*s%c\n", c - 1, c - 1, "***************************", '*');
    }
    
}
int main() {
    int    n;
    scanf("%d", &n);
    showK(n, '*');
    return  0;
}


[此贴子已经被作者于2020-5-15 15:42编辑过]

2020-05-15 15:32
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
回复 9楼 fulltimelink
参数* 多余的
看不懂你为什么要单独输出一个%c

https://zh.
2020-05-15 15:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501616-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.234697 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved