c语言 编程显示图案*,*型图案的显示与控制(学习C语言后的编程尝试)(2)(完)...
題目要求如下:
打印如下圖案
*
***
*****
*******
*****
***
*
TC中屏幕為25行,80列,將圖形放于屏幕中間位置?。按鍵盤“w”鍵可以將圖(數字,星號皆可)放大,直到最大。按鍵盤“s”可以把圖縮小,直到最小。按“x”可以將圖中*變為數字,再按“x“鍵又將數字變回星號,可以來回反復;數字圖形要求:內層為外層數字的和,如354,則輸出5;3278則輸出8。最外層從1開始。
數字圖形也如上可以放大或縮小。按鍵盤“q”退出。
上次沒有寫完,也就放下了,這次又拿起來想了想,現在算是完成了。
代碼如下:
//顯示星號:主要是通過對每行的控制來實現。
#include
#include
#include
#include
#define X 40
#define Y 12
int num[25][80];
char star[25][80];
int flag;
void initialize()
{
int x,y;
for(y=0;y<25;y++)
for(x=0;x<80;x++)
num[y][x]=0;
}
void printStar(int m)
{
int n;
int m1,m2;
int i,j;
int l,k;
n=(m-1)/2;
m1=(m+1)/2;
m2=m-m1;
for(j=0;j
for(i=-j;i
num[Y-n+j][X+i]=1;
for(j=1;j<=m2;j++)
for(i=-(m2-j);i
num[Y+j][X+i]=1;
for(l=0;l<25;l++)
for(k=0;k<80;k++)
{
if(num[l][k]==1)
star[l][k]='*';
else
star[l][k]=' ';
}
for(l=0;l<25;l++)
for(k=0;k<80;k++)
printf("%c",star[l][k]);
initialize();
flag=0;
}
int maxNum(int a)
{
int max=0;
int m;
while(a>0)
{
m=a%10;
if(m>max)
max=m;
a=a/10;
}
return max;
}
void printNum(int m)
{
int n,n1;
int i,j;
int l,k;
int m1,m2;
int sum,sum1,sum2;
int num_=1;
while(m>=1)
{
sum1=sum2=0;
n=(m-1)/2;
m1=(m+1)/2;
m2=m-m1;
j=0;
for(i=0;i
{
num[Y-n+i][X+i]=num_;
num[Y-n+i][X-i]=num_;
sum1=sum1+2*num_;
}
n1=m2-1;
for(j=1;j<=m2;j++)
{
num[Y+j][X+n1]=num_;
num[Y+j][X-n1]=num_;
sum2=sum2+2*num_;
n1--;
}
sum=sum1+sum2-2*num_;
num_=maxNum(sum);
m=m-2;
}
for(l=0;l<25;l++)
for(k=0;k<80;k++)
{
if(num[l][k]==0)
{
star[l][k]=' ';
printf("%c",star[l][k]);
}
else
printf("%d",num[l][k]);
}
initialize();
flag=1;
}
int main()
{
char c;
int s=5;
int l=0;
initialize();
printStar(s);
while(c!='q')
{
c=getche();
if(c=='w')
{
system("cls");
if(flag==0)
{
if(s<25)
{
s=s+2;
printStar(s);
}
else
printStar(25);
}
else
{
if(s<25)
{
s=s+2;
printNum(s);
}
else
printNum(25);
}
}
if(c=='s')
{
system("cls");
if(flag==0)
{
if(s>1)
{
s=s-2;
printStar(s);
}
else
printStar(1);
}
else
{
if(s>1)
{
s=s-2;
printNum(s);
}
else
printNum(1);
}
}
if(c=='x')
{
system("cls");
l++;
if(l%2!=0)
printNum(s);
else
printStar(s);
}
}
return 0;
}
內容來自用戶分享和網絡整理,不保證內容的準確性,如有侵權內容,可聯系管理員處理
總結
以上是生活随笔為你收集整理的c语言 编程显示图案*,*型图案的显示与控制(学习C语言后的编程尝试)(2)(完)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c6h内存条,4内存支持,性能提升惊喜
- 下一篇: c语言 输入若干字符串 用指针和一位数组