| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6458 人关注过本帖
标题:写了个输出菱形的C程序,请大家指教
取消只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏
 问题点数:0 回复次数:1 
写了个输出菱形的C程序,请大家指教
我是新手,写了个输出菱形的程序。大家看看这个思路怎么样.给点意见。
#include <stdio.h>
void   main()
{
    int   i ;//定义循环变量
    int   n ;//定义菱形最大边
    printf("请输入一个整数:");
    scanf("%d",&n);
    printf("\n");
    if ((n%2==0)||n<=0)
        printf("错误的输入,n必须是正奇数!重新输入:\n");
    else
    {    for (i=1;i<=(n+1)/2;i++)
        {
           int j1 ,j2 ,j3 ;
           for (j1=1;j1<=(n+1)/2-i;j1++)
               printf(" ");
           for (j2=1;j2<=(2*i-1);j2++)
               printf("*");
           for (j3=1;j3<=(n+1)/2-i;j3++)
               printf(" ");
           printf("\n");
        }
        for (i=(n+3)/2;i<=n;i++)
        {
            int k1 ,k2 ,k3 ;
            for (k1=1;k1<=i-(n+1)/2;k1++)
                printf(" ");
            for (k2=1;k2<=2*(n-i)+1;k2++)
                printf("*");
            for (k3=1;k3<=i-(n+1)/2;k3++)
                printf(" ");
            printf("\n");
        }
    }
    return  0;
}
搜索更多相关主题的帖子: include 
2011-11-13 09:56
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
我看了各位的意见发现了自己程序的不足:
(1):j3,k3变量是多余的,也就是说菱形右边的对称空格是可以不用程序输出!
(2):ji和k1,j2和k2有同样的效果,这样定义重复!
(3):以菱形总长定义n程序较半长定义n繁琐,而且半长定义不需要累述奇偶的问题!
经比较2楼 给出的第一个方案是最好的,简洁没漏洞.
4楼的方案中常数10给得突兀,想了半天。后来发现是可以修改的。而且是10时输入d较大时菱形左角插入显示屏边框里了。改成1000时显示不了菱形。能解释下吗?
我把自己的程序改进了下,大家看看可以不?
void  main()
{
    int  i ,j ,k,n ;//i控制行,j 控制空格列, k控制*列
    printf("请输入正整数n:");
    scanf("%d",&n);
    if(n<0)
        printf("错误的输入!!请重新输入:\n");
    else
        for (i=1;i<=n+1;i++)   //输出上半三角形
        {
            for (j=n+1;j>i;j--)
                printf(" ");
            for (k=1;k<=2*i-1;k++)
                printf("*");
            printf("\n");
        }
        for (i=n;i>=1;i--)   //输出下半三角形
        {
            for (j=1;j<=n-i+1;j++)
                printf(" ");
            for (k=1;k<=2*i-1;k++)
                printf("*");
            printf("\n");
        }
        getchar();
}

[ 本帖最后由 有容就大 于 2011-11-14 10:27 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2011-11-13 21:56
快速回复:写了个输出菱形的C程序,请大家指教
数据加载中...
 
   



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

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