| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7176 人关注过本帖
标题:心形程序,花了两个通宵写的,分享一下了,虚心接受大家的指正,刚刚学C,很 ...
只看楼主 加入收藏
星河king
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2012-4-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:24 
心形程序,花了两个通宵写的,分享一下了,虚心接受大家的指正,刚刚学C,很喜欢C啦
#include<stdio.h>
void main()
{   
    int a,b,c;
    int a1,a2,a3,a4,a5,a6;
    int i,j,k;

    int t;
    int x;
    int sum;
   
a:    printf("\n输入一个1——5之间的整数,按回车键。\n此程序可以输出不同大小的心形图案。\n请输入:");
    scanf("%d",&a);
    printf("\n\n");
   

   


    a1=a;
    a2=a;
    a3=a;
    a4=a;
    a5=a;
    a6=a;
/*在第一次循环中a的值已经自减发生了变化,所以需要保存a*/

   
    sum=1+2*4+2*3*a+2*2*a+2*1*a;
    c=5;



    printf("\n");
   
   
    if(!(a>=1 && a<=9))   {printf("\n\n您输入的数据有误!请重新输入!\n\n\n\n\n\n\n"); goto a;}

    for(;a>=0;a--)
        {
            t=(a+1)*a/2;                        
            /*t变量必须放在循环内,它要随着a的值变化才可以*/
            for(i=0;i<c+t;i++)
                {
                    printf(" ");
                }
            for(j=0;j<(sum-4*t-1)/2;j++)
                {
                    printf("*");
                }
            for(k=0;k<2*t+1;k++)
                {
                    printf(" ");
                }
            for(j=0;j<(sum-4*t-1)/2;j++)
                {
                    printf("*");
                }
            
            printf("\n");
        }
/*以上循环完成心形的上半部分*/
        
   
   
   
   
    for(b=1;b<a1;b++)
        {
            for(i=0;i<c;i++)
                {
                    printf(" ");
                }
            for(j=0;j<sum;j++)
                {
                    printf("*");
                }
            printf("\n");
        }
/*以上循环完成中间最宽的部分*/   
   
   

   
/*不为何下面的循环输出的图形越大就在最后输出的回车符越多。。。。*/
    for(b=1;b<=a1;b++)
        {   
            x=(b+1)*b/2;
            

            for(;a2!=0;a2--)
                {
                    for(i=0;i<c+x;i++)
                        {
                            printf(" ");
                        }
                    for(j=0;j<sum-2*x;j++)
                        {
                            printf("*");
                        }
            
                    printf("\n");
                    x++;
                }   

            
            
            
            for(;a3!=1;a3--)                     
                {
                    x++;
                    for(i=0;i<c+x;i++)
                        {
                            printf(" ");
                        }
                    for(j=0;j<sum-2*x;j++)
                        {
                            printf("*");
                        }
            
                    printf("\n");
                    x++;
                }
            
            
            
            
            for(;a4!=0;a4--)
                {
                    x++;
                    for(i=0;i<c+x;i++)
                        {
                            printf(" ");
                        }
                    for(j=0;j<sum-2*x;j++)
                        {
                            printf("*");
                        }
            
                    printf("\n");
                    x+=2;
                }




            for(;a5!=0;a5--)
                {
                    x++;
                    for(i=0;i<c+x;i++)
                        {
                            printf(" ");      
                        }
                    for(j=0;j<sum-2*x;j++)
                        {
                            printf("*");
                        }
            
                    printf("\n");
                    x+=3;
                }

            
        
/*如果去掉下面这个循环,则当a=1时候便缺少最后一行而且最后一个星号*/   
            for(;a6!=0;a6--)
                {
                    x++;
                    for(i=0;i<c+x;i++)
                        {
                            printf(" ");
                        }
                    for(j=0;j<sum-2*x;j++)
                        {
                            printf("*");
                        }
            
                    printf("\n");
                    x++;
                }
        }
            
        
    goto a;
   
/*最后输出心形的下半部分*/


   
}
搜索更多相关主题的帖子: include 
2012-04-03 16:21
星河king
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2012-4-1
收藏
得分:0 
好像犯错误了,请大家原谅,俺是刚刚加入新手,这个是想找有意的同好改进次程序滴,不算是个真正的问题贴,,,面壁去
2012-04-03 16:24
moonnight
Rank: 5Rank: 5
等 级:职业侠客
帖 子:158
专家分:380
注 册:2012-3-17
收藏
得分:2 
LZ这想法很不错!
建议不要把所有功能都写到main函数里面,最好还是不要用goto跳转
2012-04-03 17:33
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
我都没看见你的心

授人以渔,不授人以鱼。
2012-04-03 18:13
moonnight
Rank: 5Rank: 5
等 级:职业侠客
帖 子:158
专家分:380
注 册:2012-3-17
收藏
得分:0 
我看见了。。
2012-04-03 18:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用moonnight在2012-4-3 18:36:24的发言:

我看见了。。

截图出来看看?

授人以渔,不授人以鱼。
2012-04-03 18:37
moonnight
Rank: 5Rank: 5
等 级:职业侠客
帖 子:158
专家分:380
注 册:2012-3-17
收藏
得分:0 
回复 6楼 TonyDeng
其实我想问很久了,怎么截图
2012-04-03 19:04
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用moonnight在2012-4-3 19:04:21的发言:

其实我想问很久了,怎么截图

用Windows的PrintScreen可以,用QQ的截图也可以。

授人以渔,不授人以鱼。
2012-04-03 19:56
moonnight
Rank: 5Rank: 5
等 级:职业侠客
帖 子:158
专家分:380
注 册:2012-3-17
收藏
得分:0 
回复 8楼 TonyDeng
我的意识是怎么发截图
2012-04-03 20:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
附件发呀,不能用太新的浏览器哟,反正在这里IE9是发不了图的,我深受其害多时了。

授人以渔,不授人以鱼。
2012-04-03 20:16
快速回复:心形程序,花了两个通宵写的,分享一下了,虚心接受大家的指正,刚刚学 ...
数据加载中...
 
   



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

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