[求助]代码优化
刚才写的一个打印菱形的代码,感觉变量有点多,可不可以优化一下?#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;
}