| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6456 人关注过本帖
标题:写了个输出菱形的C程序,请大家指教
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏
 问题点数:0 回复次数:6 
写了个输出菱形的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
qq393825817
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-11-10
收藏
得分:0 
#include <stdio.h>
 void main()
 { int i,j,k,z,a;
   printf("Please input a number:");
   scanf("%d",&a);
   for(i=-a;i<=a;i++)
     {z=i>0?i:-i;
       for(j=1;j<=z;j++)
        printf(" ");
       for(k=1;k<=2*a-2*z+1;k++)
        printf("*");
        printf("\n");
      }
    getchar();
 }
#include<stdio.h>
main()
{
    int i,j,k,n;
    printf("input n:");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n-i;j++)
            printf(" ");
        for(k=1;k<=2*i-1;k++)
            printf("*");
        printf("\n");
    }
    for(i=1;i<=n-1;i++)
    {
        for(j=1;j<=i;j++)
            printf(" ");
        for(k=1;k<=2*(n-i)-1;k++)
            printf("*");
        printf("\n");
    }
}
看看这俩种思路。。。
2011-11-13 12:41
傻瓜菜
Rank: 2
来 自:earth
等 级:论坛游民
帖 子:73
专家分:66
注 册:2011-10-4
收藏
得分:0 
用的着这么复杂吗?就是三个寄存器变量不就够了吗?一个控制行的变化,两个控制列的变化,还有哈!为什么偶数就不行?
2011-11-13 14:38
wuenyu
Rank: 2
来 自:佛山
等 级:论坛游民
帖 子:13
专家分:12
注 册:2011-11-12
收藏
得分:0 
#include "stdio.h"
#include "conio.h"

main()
{
  int i,j,a,n,x,d;
  scanf("%d",&d);(这里输入菱形的总行数)
  x=(d+1)/2;
  for (i=-x;i<=x;i++)
  { if(i<=0)
    n=(i+x);
    else
    n=(-i+x);
    for (a=1;a<=10-n;a++)
    printf("  ");
   for (j=1;j<=n*2-1;j++)
    printf("* ");
   printf("\n");
     }
    getch();
}
2011-11-13 16:36
有容就大
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
lvmp520
Rank: 2
等 级:论坛游民
威 望:1
帖 子:18
专家分:24
注 册:2011-11-12
收藏
得分:0 
我想尽请问下菱形的输出原理是什么?哪位高手回下?
2011-11-14 01:14
wuenyu
Rank: 2
来 自:佛山
等 级:论坛游民
帖 子:13
专家分:12
注 册:2011-11-12
收藏
得分:0 
回复 6楼 lvmp520
就是利用循环语句控制在第几行第几列输出什么符号,然后组成菱形!
大概就这样,希望能帮到你!
2011-11-14 17:52
快速回复:写了个输出菱形的C程序,请大家指教
数据加载中...
 
   



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

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