| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1830 人关注过本帖, 1 人收藏
标题:菜鸟进!!!送分贴。。。【感谢浏览】
取消只看楼主 加入收藏
Ayiis
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1086
专家分:3063
注 册:2011-4-10
收藏
得分:0 
回复 40楼 饭桶
WOW,很好嘛,连变量都没有加,那条算式【90-m+n+abs(m+n-2-k)】可以看出来,你很厉害嘛!
这是俺想做到的,俺功力不够做不到才加了一个变量。。俺看看能不能把那代码再给改改

[ 本帖最后由 Ayiis 于 2012-5-25 23:07 编辑 ]

  • 该单位
  • 正在被拖走
2012-05-25 23:05
Ayiis
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1086
专家分:3063
注 册:2011-4-10
收藏
得分:0 
先贴上俺原先写的那个加了一个变量的吧
程序代码:
#include <stdio.h>
int main(){
    int n,m,j,k,s,t=90;
    char i[64];
    do {
        printf("\n\n你想要: [0]右三角\n%8c[1]正三角\n%8c[2]正方形\n%8c[3]倒三角\n%8c[4]左三角\n%8c[5]左箭头\n",32,32,32,32,32);
        scanf("%d",&s);
    }
    while(s<0||s>5);
    do printf("\n你想要边长(建议2-9)?\n");
    while(!scanf("%d",&n),n<0);
    if (s==1||s==3)    s/=j=s++;
    for(m=n;n>0&&j!=3;n--){
        sprintf(i,"\n%%%dc",s*n);
        printf(i,t);
        for (k=n*2-2;k<m*2-2;k++)
            printf(" %c",t+=1-(n+m>k+2)*2);
    }
    for(n+=2,m+=(j==3);m>1&&j!=1;m--){
        sprintf(i,"\n%%%dc",s*n++);
        printf(i,t);
        for (k=m*2-3;k>1;k--)
            printf(" %c",t-=1-(m>k)*2);
    }
    return main();
}

俺一直想把那个变量给抹去,但是抹去新变量后会直接导致输出那里的算式变长很多,所以纠结

[ 本帖最后由 Ayiis 于 2012-5-26 13:07 编辑 ]

  • 该单位
  • 正在被拖走
2012-05-26 00:19
Ayiis
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1086
专家分:3063
注 册:2011-4-10
收藏
得分:0 
回复 44楼 饭桶
俺就知道这样的代码会误导群众的。。。看上去很简洁,实际上运算量不少呢...
千万别学介样的代码风格,维护代码的时候会累死的

  • 该单位
  • 正在被拖走
2012-05-26 13:10
Ayiis
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1086
专家分:3063
注 册:2011-4-10
收藏
得分:0 
回复 33楼 laoyang103
求递归版 = =,

  • 该单位
  • 正在被拖走
2012-05-26 13:43
快速回复:菜鸟进!!!送分贴。。。【感谢浏览】
数据加载中...
 
   



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

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