一道ACM题的程序(C语言)
来源:互联网 发布:动漫我们的存在知乎 编辑:程序博客网 时间:2024/04/29 18:01
Sample Input
2
0 1
1 0
4
0 1 0 0
1 -1 0 1
0 0 1 0
0 1 0 0
0
Sample Output
Case 1:
***********
*H-O H-O-H*
* | *
* H H *
* | *
*H-O-H O-H*
***********
Case 2:
*******************
*H-O H-O-H O-H O-H*
* | | | *
* H H H H *
* | *
*H-O-H O H-O H-O-H*
* | | *
* H H H H *
* | | *
*H-O H-O H-O-H O-H*
* | *
* H H H H *
* | | | *
*H-O H-O-H O-H O-H*
*******************
/*源代码*/
#define N 100
#include "stdio.h"
int rows,cols;/*rows为输出图形的列数,cols为输出图形的行数*/
void h2o(int a[N][N],int n,char b[N][N])
{/*将a中的数字转化为相应的图形存于b中,n为行下标*/
int i,j,k,l;
k=-4;
for(i=0;i<cols;i++) /*初始化输出数组*/
for(j=0;j<rows;j++)
b[i][j]=' ';
for(i=0;i<n;i++)
{
k+=4;l=2;
for(j=0;j<n;j++)
{
switch(a[i][j])
{
case 1: b[k][l]='O';
b[k][l-1]='-';
b[k][l-2]='H';
b[k][l+1]='-';
b[k][l+2]='H';
l+=4;
break;
case -1:b[k][l]='O';
b[k-1][l]='|';
b[k-2][l]='H';
b[k+1][l]='|';
b[k+2][l]='H';
l+=4;
break;
case 0:
if(i==0&&j==0)
{
b[k][l]='O';
b[k][l-1]='-';
b[k][l-2]='H';
b[k+1][l]='|';
b[k+2][l]='H';
l+=4;
break;
}
if(i==0&&j==n-1)
{
b[k][l]='O';
b[k][l+1]='-';
b[k][l+2]='H';
b[k+1][l]='|';
b[k+2][l]='H';
break;
}
if(i==n-1&&j==0)
{
b[k][l]='O';
b[k][l-1]='-';
b[k][l-2]='H';
b[k-1][l]='|';
b[k-2][l]='H';
l+=4;
break;
}
if(i==n-1&&j==n-1)
{
b[k][l]='O';
b[k][l+1]='-';
b[k][l+2]='H';
b[k-1][l]='|';
b[k-2][l]='H';
break;
}
if(i==0&&j>0&&j<n-1)
{
if(b[k][l-2]=='H')
{
b[k][l]='O';
b[k][l+1]='-';
b[k][l+2]='H';
b[k+1][l]='|';
b[k+2][l]='H';
l+=4;
break;
}
else
{
b[k][l]='O';
b[k][l-1]='-';
b[k][l-2]='H';
b[k+1][l]='|';
b[k+2][l]='H';
l+=4;
break;
}
}
if(j==0&&i>0&&i<n-1)
{
if(b[k-3][l]=='|')
{
b[k][l]='O';
b[k][l-1]='-';
b[k][l-2]='H';
b[k+1][l]='|';
b[k+2][l]='H';
l+=4;
break;
}
else
{
b[k][l]='O';
b[k][l-1]='-';
b[k][l-2]='H';
b[k-1][l]='|';
b[k-2][l]='H';
l+=4;
break;
}
}
if(j!=0&&i>0&&i<n&&b[k-3][l]=='|'&&b[k][l-2]=='H')
{
b[k][l]='O';
b[k][l+1]='-';
b[k][l+2]='H';
b[k+1][l]='|';
b[k+2][l]='H';
l+=4;
break;
}
if(j!=0&&i>0&&i<n&&b[k-3][l]=='|'&&b[k][l-2]!='H')
{
b[k][l]='O';
b[k][l-1]='-';
b[k][l-2]='H';
b[k+1][l]='|';
b[k+2][l]='H';
l+=4;
break;
}
if(j!=0&&i>0&&i<n&&b[k-3][l]!='|'&&b[k][l-2]=='H')
{
b[k][l]='O';
b[k-1][l]='|';
b[k-2][l]='H';
b[k][l+1]='-';
b[k][l+2]='H';
l+=4;
break;
}
if(j!=0&&i>0&&i<n&&b[k-3][l]!='|'&&b[k][l-2]!='H')
{
b[k][l]='O';
b[k-1][l]='|';
b[k-2][l]='H';
b[k][l-1]='-';
b[k][l-2]='H';
l+=4;
break;
}
}
}
}
}
main()
{
int i,j,n;
int a[N][N];
char b[N][N];
scanf("%d",&n);
rows=(n-1)*3+n+4;
cols=(n-1)*3+n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
h2o(a,n,b);
for(i=0;i<rows+2;i++)
printf("*");
printf("/n");
for(i=0;i<cols;i++)
{
printf("*");
for(j=0;j<rows;j++)
printf("%c",b[i][j]);
printf("*/n");
}
for(i=0;i<rows+2;i++)
printf("*");
printf("/n");
}
- 一道ACM题的程序(C语言)
- 一道C语言程序题
- C 语言的一道题~
- 第一道ACM程序题
- 一道C语言题
- 微软的一道C语言笔试题(转)
- (C语言)搜狗的一道在线编程题
- 曾经的一道C语言笔试题
- csdn一道C语言题的学习
- 一道很好的C语言题
- 一道很好的C语言题
- 一道简单的C语言题
- 一道C语言的指针笔试题
- 一道简单的C语言题
- 哪个对啊 算的跟答案不一样 一道C语言程序题
- 学校的一道acm题
- 一道C语言的题目
- 一道C语言题(2)
- 黑客書架上出现频率最高的書籍
- IP地址及子网划分
- 那天,我收获了爱情
- 这论坛不错噢,好好逛逛
- 使用CSS处理长字符串
- 一道ACM题的程序(C语言)
- js中实现table的插入、修改、删除
- ASP.NET26个常用性能优化方法
- 缓冲区溢出漏洞入门介绍 hokersome(原作)
- 内容页访问母版页属性方法之二(MatrerType指令)
- 用shl便利地删除数据库所有表
- 什么都没有。。。
- 如何让EditPlus支持LUA
- QQ 空间免费装扮