标题:请教一道竞赛编程题,给个思路也行!
只看楼主
vivien薄荷芯
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2012-11-11
结帖率:100%
 问题点数:0 回复次数:11 
请教一道竞赛编程题,给个思路也行!


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

比如:         

    ┌─┬─┐

    │  │  │

    ├─┼─┤

    │  │  │

    └─┴─┘      

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

    左上 = ┌

    上 =  ┬

    右上 =  ┐

    左 =  ├

    中心 =  ┼

    右 =  ┤

    左下=  └

    下 =  ┴

    右下 =  ┘

    垂直 =  │

    水平 =   ─

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

例如用户输入:

3 2

则程序输出:

┌─┬─┐

│  │  │

├─┼─┤

│  │  │

├─┼─┤

│  │  │

└─┴─┘

用户输入:

2 3

则程序输出:

┌─┬─┬─┐

│  │  │  │

├─┼─┼─┤

│  │  │  │

└─┴─┴─┘
搜索更多相关主题的帖子: 表格 Windows 特殊符号 漂亮 
2013-04-27 16:45
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
得分:0 
用两个for嵌套循环,一行一行的输出  
找规律就知道了.具体就不说了  自己思考

有心者,千方百计;无心者,千难万难。
2013-04-28 01:18
chinac
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-3-11
得分:0 
但是如何利用Vc++6.0输出像这样的“|-”特殊符号啊,求解,谢谢啦。
2013-05-04 16:50
vivien薄荷芯
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2012-11-11
得分:0 
我也想知道
2013-05-04 19:43
vivien薄荷芯
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2012-11-11
得分:0 
垂直的怎么输入的?
2013-05-04 21:42
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分: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;
}


[fly]存在即是合理[/fly]
2013-05-04 22:33
lolita1992
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2011-12-10
得分: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;
}
2013-05-09 09:19
hhwz
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:87
帖 子:687
专家分:4502
注 册:2011-5-22
得分:0 
找到其中的规律写代码就方便了
从图中可以看到  垂直 和 水平 是和输入的 行与列是相等的

中心 上 左 右 下 都是输入值 减少1

从第一行开始输出就行了

2013-05-13 10:34
Kingbox_tang
Rank: 7Rank: 7Rank: 7
来 自:天津师范大学
等 级:黑侠
威 望:3
帖 子:146
专家分:677
注 册:2012-11-27
得分:0 
这个题目是竞赛里最简单的吧!

旨在提高编程水平,学有所用,学有所成,学有所为。
2013-05-17 15:19
sbbqq
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-12-21
得分:0 
/*
标题:画表格
在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。
比如:        
    ┌─┬─┐
    │  │  │
    ├─┼─┤
    │  │  │
    └─┴─┘        
其实,它是由如下的符号拼接的:
    左上 = ┌
    上 =  ┬
    右上 =  ┐
    左 =  ├
    中心 =  ┼
    右 =  ┤
    左下=  └
    下 =  ┴
    右下 =  └
    垂直 =  │
    水平 =   ─
本题目要求编写一个程序,根据用户输入的行、列数画出相应的表格来。

例如用户输入:
3 2
则程序输出:
┌─┬─┐
│  │  │
├─┼─┤
│  │  │
├─┼─┤
│  │  │
└─┴─┘
用户输入:
2 3
则程序输出:
┌─┬─┬─┐
│  │  │  │
├─┼─┼─┤
│  │  │  │
└─┴─┴─┘
对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库,但不能使用MFC或ATL等非ANSI c++标准的类库。例如,不能使用CString类型(属于MFC类库)。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意选择自己使用的编译环境。
*/
#include<iostream>
using namespace std;
int main()
{
    int m,n;
    cin>>m>>n;
    for(int i=0;i<=m;i++)
    {
        for(int j=0;j<=n;j++)
        {
            if(i==0)
                if(j==0)
                  cout<<"┌─";
                else
                    if(j==n)
                        cout<<"┐";
                    else
                        cout<<"┬─";
            else
               
                   if(i==m)
                       if(j==0)
                          cout<<"└─";
                        else
                            if(j==n)
                              cout<<"┘";
                            else
                            cout<<"┴─";
                     else
                            if(j==0)
                             cout<<"├—";
                             else
                                if(j==n)
                                  cout<<"┤";
                                 else
                                  cout<<"┼─";
                                    
            
        }
        cout<<endl;
        if(i!=m)
        for(int k=0;k<=n;k++)
              if(k==0)
                 cout<<"│";
              else
                 cout<<"  │";
        cout<<endl;
    }
}
2013-12-25 00:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-405688-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.740721 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved