题目要求如下:

打印如下图案

*

***

*****

*******

*****

***

*

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)(完)...相关推荐

  1. python语言编程入门先学什么-初学者先学习python语言还是C语言

    有人觉得应该从C语言开始入门,原因如下: 1.C语言是你上大学第一门接触的编程语言,可见它的重要性. 2.C语言是一种面向过程的语言,而Python是一种面向对象的解释型计算机程序设计语言.而你需要先 ...

  2. c++ 小游戏_C/C++编程笔记:C语言写推箱子小游戏,大一学习C语言练手项目

    C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...

  3. c语言数据类型int的用法,C语言基本数据类型:整型(int)用法详解|C语言学习

    C语言基本数据类型:整型(int)用法详解 1. 整型 int C 语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int 是整型之一,一般被称为整型.以后, ...

  4. 《C语言入门指南》合集版,学习c语言有这一篇就够了?

    前言: <C语言入门指南>,全文分为3篇,共计34248字,此为合集版,适用初学者入门C语言,非初学者也可以通过本文复习C语言相关知识点,强化记忆!十三肝7天才弄完,贼累了,发布这篇笔记也 ...

  5. 在c语言中定义共用型数据类型的关键字是,C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C语言32个关键字2009年07月09日 星期四 下午 03:57复习一下: 第一个关键字:auto 用来声明自动变量. 可以显式的声明变量为自动变量.只 ...

  6. c语言编程星空代码,写给初学者──如何学习C语言

    ALX的BLOG熊窝BLOGtianyeww的BLOG平安年间BLOG陈胜纲的BLOGnmdd的专栏甜蜜的T007之家心雨阁张宴的BLOGMilo的BLOGknight的BLOGFreeBSD之旅我的 ...

  7. 网页编程从入门到精通 杨凡_学习计划丨西门子S7200编程从入门到精通

    点击关注? PLC进阶就上"技成PLC课堂"! S7-200从入门到精通这个课程涵盖了S7-200PLC的所有的功能应用,本视频主要分为以 下几个内容对S7-200PLC进行详细介 ...

  8. c语言输出问句接受一个答案,浅谈学习C语言的经过

    回想刚刚接触C语言的时候,简直触目惊心! 楼主加了个嵌入式协会,该协会主要以单片机为主,设计安卓芯片开发等等之类.然而非计算机类专业的苦逼楼主要等到后面一学期学校才会开设相关课程,没办法,只有自己慢慢 ...

  9. c语言switch思维导图,思维导图学习C语言,加深知识点记忆

    C语言是一门非常基础的计算机语言,是大部分本科学生的公共专业,在C语言的学习中,选择和循环语句是至关重要的部分,利用思维导图可以有效节约时间并加深知识点记忆. 接下来就为大家介绍一下我用iMindMa ...

最新文章

  1. 数据库,傻逼才用外键约束!
  2. 答“我们的团队项目是否有大泥球?”
  3. PIC最简约的PWM波形产生程序(PIC16F877A)
  4. R语言与总体比例的置信区间
  5. Shiro的authc过滤器的执行流程
  6. android 同根动画_android 动画系列 (1) - tween 动画(view动画)
  7. mysql atlas php_Mysql中间件代理 Atlas
  8. 微信公众开放平台开发06---复习一下servlet
  9. iOS截取视频预览图,截图方向错误的解决
  10. 一般试卷的纸张大小是多少_档案产品库纸张整理专家
  11. 一行命令搞定node.js 版本升级
  12. WPF_在APP.xaml应用资源样式
  13. mybatis系列-tkmybatis-04-SpringBoot整合TkMybatis+PageHelper实现分页查询
  14. CleanMyPC比360管家好用N倍的电脑清理软件
  15. 小提琴1234567位置图解_小提琴1234567位置图解 那就随便拉了啊反正是玩嘛~怎
  16. iso镜像文件安装linux,详细解说Ubuntu iso安装镜像文件
  17. 计算机主机usb插口松,台式电脑音频接口坏了or接触不良?用这两个方法轻松解决,还不需要花什么钱...
  18. 关于Linux下面移动硬盘读不出来
  19. Python - 列联表的独立性检验(卡方检验)
  20. linux安装git并配置GitHub账号,本地与GitHub之间进行文件的上传(push)、下载(克隆)、更新

热门文章

  1. 看完这个“秒杀”设计方案!我有点慌了
  2. CCtalk高可用多媒体服务技术选型与实现
  3. Java多线程之8Lock问题解析
  4. Golang 简洁架构实战
  5. 程序员下班后收到工作信息怎么办?
  6. 常说的手机刷新率60Hz、120Hz有什么不同?
  7. 数平精准推荐 | OCR技术之系统篇
  8. Apache Hadoop 3.0.0 GA版正式发布,可以部署到线上
  9. 谷歌发布全新TensorFlow库“tf.Transform” 简化机器学习数据预处理过程
  10. golang处理kill命令总结