标题:(1)C语言问题之打印图案
只看楼主
武伟
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:506
专家分:2638
注 册:2015-7-23
结帖率:100%
已结贴  问题点数:30 回复次数:7 
(1)C语言问题之打印图案
问这道题前已经在论坛里翻了很多以前的帖子,还有在百度上也了解了一些打印图案的基本规律与方法,可手上的这道题实在没思路,恕我愚笨,恳请诸位指点一二
在论坛里也算呆了几个月,本着能不问就不问的“精神”,终于忍不住了,学校OJ里的一道题:
题目描述:
编写一个程序,分别打印两个图案(如样例输出所示),图案由星号(*)和减号(-)组成,要求两个图案并排。

输入:
第一行一个正整数T,表示有T组测试数据。以下有T行,每行有一个数n。

输出:
第一行一个正整数T,表示有T组测试数据。以下有T行,每行有一个数n。

样例输入:
3
3
5
10

样例输出:
*---***
**--**-
***-*--
*-----*****
**----****-
***---***--
****--**---
*****-*----
*----------**********
**---------*********-
***--------********--
****-------*******---
*****------******----
******-----*****-----
*******----****------
********---***-------
*********--**--------
**********-*---------

也算是超前学习了一些吧,我用的while循环,可是写着写着就混了,打算用for循环,可是中间那一纵列减号又不知道怎么处理,各位,麻烦指点小子一二吧
搜索更多相关主题的帖子: 百度 C语言 正整数 学校 
2015-10-12 18:14
武伟
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:506
专家分:2638
注 册:2015-7-23
得分:0 
为什么没有人,好孤单
2015-10-12 21:50
SKYYYF
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:71
专家分:184
注 册:2012-9-23
得分:30 
程序代码:
#include<stdio.h>
void main()
{
    int i,j,t;    

    printf("请输入一个正整数:");
    scanf("%d",&t);


    for(i=1;i<=t;i++)
    {
        for(j=0;j<i;j++)
            printf("*");

        for(j=t;j>=i;j--)
            printf("-");

        for(j=t;j>=i;j--)
            printf("*");

        for(j=0;j<(i-1);j++)
            printf("-");

        printf("\n");

    }
}
2015-10-12 21:58
SKYYYF
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:71
专家分:184
注 册:2012-9-23
得分:0 
第一次没有完全理解,又读了一遍才理解意思,又写了一个
程序代码:
#include<stdio.h>
#include<malloc.h>
void main()
{
    int i,j,T,n;
    int *arr;

    printf("输入T组数据和n个数\n");
    scanf("%d",&T);

    arr=(int *)malloc(T*sizeof(int));

    for(n=0;n<T;n++)
        scanf("%d",&arr[n]);

    for(n=0;n<T;n++)
    {

        for(i=1;i<=arr[n];i++)
        {
            for(j=0;j<i;j++)
                printf("*");

            for(j=arr[n];j>=i;j--)
                printf("-");

            for(j=arr[n];j>=i;j--)
                printf("*");

            for(j=0;j<(i-1);j++)
                printf("-");

            printf("\n");

        }
    }
}
2015-10-12 22:27
武伟
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:506
专家分:2638
注 册:2015-7-23
得分:0 
回复 4楼 SKYYYF
嗯,主要是这个图形打印的思路不是很清楚,您的第一个代码for(j=0;j<(i-1);j++)这个是想实现什么行为?您是怎么想到的?
还有第二个代码,只能说几句抱歉了,因为是大一刚开始,有很多知识还没学——看不懂

不过,第一个代码确实让人豁然开朗
2015-10-12 22:55
SKYYYF
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:71
专家分:184
注 册:2012-9-23
得分:0 
回复 5楼 武伟
写那个代码是为了实现每行最后面的"-",你要问我怎么想到的,我只能回答是  经验。
2015-10-12 22:59
SKYYYF
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:71
专家分:184
注 册:2012-9-23
得分:0 
回复 5楼 武伟
另外,求给分!
2015-10-12 22:59
武伟
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:506
专家分:2638
注 册:2015-7-23
得分:0 
回复 6楼 SKYYYF
嗯,这样一说就明白多了,谢谢啦!
2015-10-12 23:04



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




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

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