请教一道竞赛编程题,给个思路也行!
在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。
比如:
┌─┬─┐
│ │ │
├─┼─┤
│ │ │
└─┴─┘
其实,它是由如下的符号拼接的:
左上 = ┌
上 = ┬
右上 = ┐
左 = ├
中心 = ┼
右 = ┤
左下= └
下 = ┴
右下 = ┘
垂直 = │
水平 = ─
本题目要求编写一个程序,根据用户输入的行、列数画出相应的表格来。
例如用户输入:
3 2
则程序输出:
┌─┬─┐
│ │ │
├─┼─┤
│ │ │
├─┼─┤
│ │ │
└─┴─┘
用户输入:
2 3
则程序输出:
┌─┬─┬─┐
│ │ │ │
├─┼─┼─┤
│ │ │ │
└─┴─┴─┘
----------------解决方案--------------------------------------------------------
用两个for嵌套循环,一行一行的输出
找规律就知道了.具体就不说了 自己思考
----------------解决方案--------------------------------------------------------
但是如何利用Vc++6.0输出像这样的“|-”特殊符号啊,求解,谢谢啦。
----------------解决方案--------------------------------------------------------
我也想知道
----------------解决方案--------------------------------------------------------
垂直的怎么输入的?
----------------解决方案--------------------------------------------------------
程序代码:
#include<stdio.h>
int main()
{
int i;
char s[] = "┬";
puts(s);
for (i = 0;s[i] != '\0';++i)
{
putchar(s[i]);
}
putchar('\n');
return 0;
}
int main()
{
int i;
char s[] = "┬";
puts(s);
for (i = 0;s[i] != '\0';++i)
{
putchar(s[i]);
}
putchar('\n');
return 0;
}
----------------解决方案--------------------------------------------------------
#include <stdio.h>
int main()
{
int x,y,i,j;
scanf("%d%d", &x, &y);
for( i=0;i<=x;i++)
{
for( j=0;j<=y;j++)
{
if(0==i && 0==j)
{
printf("┌―");
}
else if(0==i && j==y)
{
printf("┐");
}
else if(i==x && 0==j)
{
printf("└―");
}else if(i==x && j==y)
{
printf("┘");
}
else if(0 == i)
{
printf("┬―");
}
else if(0 == j)
{
printf("├―");
}
else if(i == x)
{
printf("┴―");
}else if(j == y)
{
printf("┤");
}
else
printf("┼―");
}
printf("\n");
if(i==x) break;
for(int j=0;j<=y;j++)
printf("│ ");
printf("\n");
}
return 0;
}
----------------解决方案--------------------------------------------------------
找到其中的规律写代码就方便了
从图中可以看到 垂直 和 水平 是和输入的 行与列是相等的
中心 上 左 右 下 都是输入值 减少1
从第一行开始输出就行了
----------------解决方案--------------------------------------------------------
这个题目是竞赛里最简单的吧!
----------------解决方案--------------------------------------------------------