标题:[求助]代码优化
只看楼主
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
结帖率:33.33%
 问题点数:0 回复次数:3 
[求助]代码优化
刚才写的一个打印菱形的代码,感觉变量有点多,可不可以优化一下?
#include<stdio.h>
#include<stdlib.h>
int main()
{
 int N;    //要打印的菱形的大小:3 5 7 9 ......
 int Fstar=1,Lstar=1;   //记录星数,初始化为1
 int Fspace,Lspace;    //记录空格
 int _Max;      //记录最大行,_Max=(N+1)/2
 int _count=1;    //记录计数行,初始化为1
 printf("输入要打印菱形的大小[>=3&&<=79的奇数]:  ");
 scanf("%d",&N);
 _Max=(N+1)/2;
 Fspace=(N-1)/2;
 
 if(N<=0||N%2==0||N>79)
 {
   if(N>79)
  {
     printf("超出窗口,不能正常打印菱形!\n");
     exit(0);
  }
  else
  {
   printf("不能打印菱形!\n");
   exit(0);
  }
 }
 else
 {
  /*  *****************打印菱形*********************************/
     for(int i=0;i<N;i++)
  {
      if(_count<=_Max) //打印_Max以前的行
   {
         int temp1=Lspace=Fspace;  //临时存放空格
            int temp2=Lstar=Fstar;  //临时存放星数
          Lspace++;  //随时设置_Max行以后的空格
           Lstar-=2;  //随时设置_Max行以后的星数
               for(;Fspace!=0;Fspace--)
      {
                printf(" ");
      }
             for(;Fstar!=0;Fstar--)
       {
               printf("*");
       }
                printf("\n");
                  Fspace=temp1-1;  //更新空格
                  Fstar=temp2+2;   ///更新星数
                  _count++;   //更新行数
   }
       else  //打印_Max以后的行
   {
             int temp1=Lspace;
                int temp2=Lstar;
          for(;Lspace!=0;Lspace--)
       {
             printf(" ");
       }
          for(;Lstar!=0;Lstar--)
       {
           printf("*");
       }
              printf("\n");
              Lspace=temp1+1;  //更新空格
                 Lstar=temp2-2;   //更新星数
               _count++;    //更新行数
   }
  }
 }
 return 0;
}
搜索更多相关主题的帖子: int Max 菱形 代码 
2007-11-23 17:41
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
其实代码中真正的核心很短

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-11-23 18:39
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
得分:0 
写一个函数
void putchars(char c,int n)
实现在屏幕上打印n个字符,打印哪个字符由c指定

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-23 19:44
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
得分:0 
把代码装在函数里果然看起少多了~:lol

樱花大战,  有爱.
2007-11-23 20:53



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




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

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