标题:打印*菱形问题,好长,谁能帮精简一下,自己看得都晕眼
只看楼主
sk2363805
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-12-31
 问题点数:0 回复次数:8 
打印*菱形问题,好长,谁能帮精简一下,自己看得都晕眼
要求打印   *
                 *    *   *
           *    *    *    *    *
     *     *    *    *    *   *   *
            *    *   *     *   *
                 *    *     *
                      *
我的思路:2个独立循环,{(列i=1~4 ,j=1~4 图形上部前半部分)(列i=1~4 ,k=5~7 图形上部后半部分)}第一个循环
{(列i=5~6 ,j=1~4 图形下部前半部分)(列i=5~6,k=5~7 图形下部后半部分)}第二个循环
程序如下:
#include <stdio.h>
main()
{int i,j,k;
 {for(i=4;i>=1;i--)
   {
   for(j=1;j<=4;j++){if(i-j>0)printf(" ");else printf("*");}         /*上半部前段*/
   for(k=5;k<=7;k++){if(i+k>8)printf(" ");else printf("*");}     /*上半部后段*/
   printf("\n");  
   }
 }                                                                                                 /*上半部分*/   
 {
   for(i=5;i<=7;i++)
   {
    for(j=1;j<=4;j++){if(i-j>4)printf(" ");else printf("*");}  
    for(k=5;k<=7;k++){if(i+k>11)printf(" ");else printf("*");}
    printf("\n") ;
    }
 }
}

太长、太笨有其他好法吗?
搜索更多相关主题的帖子: 菱形 打印 精简 
2008-01-12 15:05
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
你得也不错啊.代码不长也很规范啊.我个人觉得代码规范就很好了,没必要追求那种挖空心思的代码啊,也不方便看啊
2008-01-12 16:07
linsua
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2008-1-2
得分:0 
其实考的是数学:
这是我以前写的,你参考一下:
#include<stdio.h>
#include<math.h>
void print_dia(int n);
int main()
{
    int n;
    scanf("%d",&n);
    print_dia(n);
}

void print_dia(int n)
{
    int i,j;
    for(i=-n;i<=n;++i){
        for(j=n;j>=-n;--j)
                printf("%c",abs(i)+abs(j)<=n?'*':' ');
        printf("\n");
    }
}

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-01-12 16:20
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
得分:0 
这个写的确实是好
赞你一个
2008-01-12 20:13
linsua
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2008-1-2
得分:0 
原帖由 [bold][underline]xianshizhe111[/underline][/bold] 于 2008-1-12 20:13 发表 [url=http://bbs.bccn.net/redirect.php?goto=findpost&pid=1179217&ptid=197196][/url]
这个写的确实是好
赞你一个


谢谢支持

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-01-13 17:42
岳C
Rank: 1
等 级:禁止发言
帖 子:354
专家分:0
注 册:2007-7-16
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

坚持到底
2008-01-13 17:53
孤魂居士
Rank: 2
来 自:老A(中国地大)
等 级:论坛游民
威 望:4
帖 子:1142
专家分:18
注 册:2007-5-21
得分:0 
#include <iostream.h>
#include <conio.h>
void main()
{
int n;
too:
cout<<"输入你想要打印的上半节行数:"<<endl;
cin>>n;

    for(int i=1;i<=n;i++)
    {
        {
            for(int j=1;j<=n-i;j++)
                cout<<" ";
        }
        {
            for(int k=1;k<=2*i-1;k++)
                cout<<"*";
        }
        cout<<endl;
    }
    for(int t=1;t<=n-1;t++)
    {
        {
            for(int a=1;a<=t;a++)
                cout<<" ";
        }
        {
            for(int b=1;b<=2*(n-1)-2*t+1;b++)
                cout<<"*";
        }
        cout<<endl;
    }
    int c;
    cout<<"如果你觉得输入"<<n<<"能证明此程序是正确的,并且要求退出程序请按2,如果再想输入新的行数来验证此程序的正确性请按1"<<endl;
    cin>>c;
    if(c==1)
        goto too;
    if(c==2)
        cout<<"程序已经结束,请按任意键退出"<<endl;
getch();
}

准备用3年做个高级软件工程师 10年也做不成。准备用10年做成高级软件工程师 3年就成了QQ 群 45771086
欢迎版主...欢迎JAVA爱好者...
一起从深夜 到凌晨...
2008-01-13 20:30
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
得分:0 
我觉得代码的格式很重要吧! 写成这样好的程序也有人懒得看.
2008-03-11 14:25
iFreeBSD
Rank: 4
等 级:业余侠客
威 望:4
帖 子:474
专家分:236
注 册:2007-11-5
得分:0 
#include <stdio.h>
#include <math.h>
int main(void) {
         int a , b ;
         for(a = 0 ; a <= 4 ; a++) {
             for(b = -4 ; b <= 4 ; b++) {
                 if(abs(a) <= abs(b))
                    printf(" ") ;
                 else
                    printf("*") ;
              }
              printf("\n") ;
          }
         for(a = 3 ; a > 0 ; a--) {
             for(b = -4 ; b < 4 ; b++) {
                 if(abs(a) <= abs(b))
                    printf(" ") ;
                 else
                    printf("*") ;
              }
              printf("\n") ;
          }
 return 0 ;
}

without further ado, let’s get started
2008-03-11 15:35



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




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

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