| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 892 人关注过本帖
标题:第一次做图形 请指教
只看楼主 加入收藏
mscool
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2013-5-9
结帖率:92.31%
收藏
 问题点数:0 回复次数:7 
第一次做图形 请指教
题目 :编写函数diamond打印一个菱形。如果调用diamond(3, '*'),则打印:
        *
*       *       *
        *
如果调用diamond(5, '+'),则打印:
                +
        +       +       +
+       +       +       +       +
        +       +       +
                +
如果用偶数做参数则打印错误信息。


我的程序如下:
#include<stdio.h>
#include<math.h>
void diamond(int n,char m)
{
    int i,j,middle,distance;
    for(i=1;i<=n;i++)
    {
        middle=(n+1)/2;
                distance=fabs(i-middle);
        for(j=1;j<=n;j++)
            if(j<(middle-distance)) /*将m限制在每行的中心位置附近*/
                printf("%c\t\t",m);
            else
                printf("\t\t\t");
    }
}
int main()
{
    int a;char b;
    scanf("%d%c",a,b);
    if(a%2==0)
        printf("Wrong  number!!");
    else if(a>0)
        diamond(a,b);
    return 0;
}
搜索更多相关主题的帖子: 打印 图形 distance diamond include 
2013-05-25 16:57
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<math.h>

void diamond(int n , char ch)
{
    int i , j , t;
    if(n % 2 == 0) 
    {
        printf("错误!\n");
        return ;
    }
    for(i = 0 ; i < n ; i++)
    {
        t = i <= n/2 ? (2 * (i + 1) - 1) : (2 * n + 1 - 2 * (i + 1));
        for(j = 0 ; j < abs(n / 2 - i) ;printf("    ") , j++);
        for(j = 0 ; j < t ; j++)
        {
            printf("%c   " , ch);
        }
        printf("\n");
    }
}
int main()
{
    int n;
    printf("请输入n的值:\n");
    scanf("%d" , &n);
    printf("图形为:\n");
    diamond(n , '*');
    return 0;
}

这是我的代码

练就一身本领,只为笑傲江湖!
2013-05-25 18:14
mscool
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2013-5-9
收藏
得分:0 
t = i <= n/2 ? (2 * (i + 1) - 1) : (2 * n + 1 - 2 * (i + 1));这段比较高级 呵呵  我暂时还是看不懂
2013-06-13 08:42
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
楼主这是在分享代码,还是你的代码有错误、



学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-06-13 15:08
mscool
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2013-5-9
收藏
得分:0 
回复 4楼 蚕头燕尾
有错误……
2013-06-13 18:18
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
以下是引用mscool在2013-6-13 08:42:52的发言:

t = i <= n/2 ? (2 * (i + 1) - 1) : (2 * n + 1 - 2 * (i + 1));这段比较高级 呵呵  我暂时还是看不懂

条件判断式:表达式1?表达式2:表达式3;
执行表达式1,如果为真就执行条件式2,否则执行条件式3!!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-06-13 18:21
mscool
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2013-5-9
收藏
得分:0 
回复 6楼 我叫沃恩
谢谢
2013-06-13 18:25
天地霸气诀
Rank: 2
等 级:禁止发言
帖 子:21
专家分:21
注 册:2013-6-14
收藏
得分:0 
回复 2楼 笑傲
提示: 作者被禁止或删除 内容自动屏蔽
2013-06-14 17:05
快速回复:第一次做图形 请指教
数据加载中...
 
   



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

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