| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1360 人关注过本帖, 1 人收藏
标题:一道笔试题
只看楼主 加入收藏
梦幻乐园
Rank: 2
等 级:论坛游民
帖 子:62
专家分:87
注 册:2012-10-25
收藏
得分:0 
回复 7楼 yuccn
还是版主的程序牛,佩服!!
2013-03-02 22:19
清风篱落
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-2-17
收藏
得分:0 
#include<iostream>
using namespace std;
void main()
{
    int m,n,i,j;
    int data,a[100][100];
    cout<<"input n:";
    cin>>data;
    m=1;n=2*data-1;
/******************************************/
    while(m<=n)
    {
        for(i=m-1;i<=n-1;i++)
        {
            a[m-1][i]=m;
            a[n-1][i]=m;
            a[i][m-1]=m;
            a[i][n-1]=m;
        }
        m++;
        n--;
    }
/******************************************/
    for(i=0;i<2*data-1;i++)
    {
        for(j=0;j<2*data-1;j++)
            cout<<"   "<<a[i][j];
        cout<<endl;
    }
}
2013-03-02 22:28
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
程序代码:
#include <stdio.h>

#define N 5

void test(int n)
{
    int i, j, a[N][N] = {0};
    
    for (i = 0; i < n; ++i)
    for (j = 0; j < n; ++j)
        a[i][j] = (i < j ? i : j) + 1;

    for (i = 0; i < 2*n-1; ++i, puts(""))
    for (j = 0; j < 2*n-1; ++j)
        printf("%d ", a[i<n ? i : 2*n-2-i][j<n ? j : 2*n-2-j]);
}

int main()
{
    test(3);
    return 0;
}


[fly]存在即是合理[/fly]
2013-03-02 22:30
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
思路就是构造大方块的四分之一,然后每行、每列 正序、逆序各输出一次,就把方块补全了


[fly]存在即是合理[/fly]
2013-03-02 22:34
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
收藏
得分:0 
有意思!!!
2013-03-02 23:13
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
凑个热闹,算法上没什么可说的,本质没什么差别,只当切磋一下编码技巧吧。
程序代码:
#include<stdio.h>
int main()
{
    int n, m, i, j, a, b;
    scanf("%d", &n);
    for(m = n << 1, i = 0; ++i < m; puts(""))
    for(a=n-abs(i-n), j = 0; ++j < m; printf("%3d", (a < (b=n-abs(j-n)) ? a:b)));
    return 0;
}

重剑无锋,大巧不工
2013-03-03 10:50
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
收藏
得分:0 
#define Max 39
#include<stdio.h>
void main()
{
    int num,a[Max][Max],i,k,l,m,j,n;
    printf("请输入需排列方阵的最大数字\n范围1~20:");
    scanf("%d",&num);
    m=2*num-1;
    for(i=0;i<num;i++)
    {
        for(k=i;k<m-i;k++)
        {
            a[k][i]=i+1;
            a[i][k]=i+1;
        }
        for(l=m-i-1,k=i;k<m-i;k++)
        {
            a[l][k]=i+1;
            a[k][l]=i+1;
        }
    }
    for(j=0;j<m;j++)
    {
        for(n=0;n<m;n++)
        {
            printf("%3d",a[j][n]);
        }
        printf("\n");
    }
}
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 逆风而前 于 2013-3-3 15:51 编辑 ]
2013-03-03 15:42
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
收藏
得分:0 
飘过
2013-03-05 11:40
你不想去那儿
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:56
专家分:114
注 册:2012-9-21
收藏
得分:0 
同学也是准备江苏省计算机二级吧!  
这题我的思路是先初始化一个2*n-1的矩阵,赋值为1,
然后从第二行第二列到2*n-2行2*n-2列,赋值为2,以后同理。
2013-03-05 12:38
木容木水
Rank: 2
等 级:论坛游民
帖 子:44
专家分:25
注 册:2013-2-24
收藏
得分:0 
对于10楼:
#include <stdio.h>
int main()
{
     int i,j,m;
     int a[5][5];
     printf("Input 3:\n");
     scanf("%d",&j);
     if(j==3){
     for(i=0;i<5;i++)
     {
       a[0][i]=1;
       a[4][i]=1;
     }
     for(i=1;i<5;i++)
     {
       a[i][0]=1;
       a[i][4]=1;
     }
     for(i=1;i<4;i++)
     {
       a[1][i]=2;
       a[3][i]=2;
     }
     a[2][2]=3;
     a[2][1]=a[2][3]=2;
     for(i=0;i<5;i++)
       for(m=0;m<5;m++)
         printf("%d%c",a[i][m],m==4?'\n':' ');
     }
     else
       printf("Please input 3!");
    return 0;
}
2013-03-05 14:20
快速回复:一道笔试题
数据加载中...
 
   



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

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