当前位置: 代码迷 >> Java相关 >> 请教一道竞赛编程题,给个思路也行!
  详细解决方案

请教一道竞赛编程题,给个思路也行!

热度:255   发布时间:2013-04-27 16:45:39.0
请教一道竞赛编程题,给个思路也行!


在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。

比如:         

    ┌─┬─┐

    │  │  │

    ├─┼─┤

    │  │  │

    └─┴─┘      

其实,它是由如下的符号拼接的:

    左上 = ┌

    上 =  ┬

    右上 =  ┐

    左 =  ├

    中心 =  ┼

    右 =  ┤

    左下=  └

    下 =  ┴

    右下 =  ┘

    垂直 =  │

    水平 =   ─

本题目要求编写一个程序,根据用户输入的行、列数画出相应的表格来。

例如用户输入:

3 2

则程序输出:

┌─┬─┐

│  │  │

├─┼─┤

│  │  │

├─┼─┤

│  │  │

└─┴─┘

用户输入:

2 3

则程序输出:

┌─┬─┬─┐

│  │  │  │

├─┼─┼─┤

│  │  │  │

└─┴─┴─┘
搜索更多相关的解决方案: 表格  Windows  特殊符号  漂亮  

----------------解决方案--------------------------------------------------------
用两个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;
}

----------------解决方案--------------------------------------------------------
#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

从第一行开始输出就行了


----------------解决方案--------------------------------------------------------
这个题目是竞赛里最简单的吧!
----------------解决方案--------------------------------------------------------
  相关解决方案