| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1360 人关注过本帖, 1 人收藏
标题:一道笔试题
只看楼主 加入收藏
qq383264679
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:155
专家分:130
注 册:2012-1-19
结帖率:88.89%
收藏(1)
已结贴  问题点数:50 回复次数:26 
一道笔试题
项目题目:一道简单的面试题(主要看编程思想)  让更多的朋友参与!!!!
 
要求:
 
运行程序:输入3,打印出如下图像:
 
 1 1 1 1 1
 1 2 2 2 1
 1 2 3 2 1
 1 2 2 2 1
 1 1 1 1 1

搜索更多相关主题的帖子: 运行程序 
2013-03-02 19:44
气蛤蟆
Rank: 1
来 自:湖北襄阳
等 级:新手上路
帖 子:19
专家分:4
注 册:2013-1-15
收藏
得分:0 
作业?

自用服务器卖啦,看下面的帖子有图
/thread-399533-1-1.html 你懂得!
2013-03-02 19:46
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:50 
程序代码:
#include <iostream>
using namespace std;

int n;

int min(int a,int b,int c,int d)
{
    if (a<b && a<c && a<d) return a; else
    if (b<c && b<d) return b; else
    if (c<d) return c; else return d;
}

int main()
{
    cin>>n;
    for (int i=0; i<n+n-1; i++)
    {
        for (int j=0; j<n+n-1; j++)
            cout<<min(i+1,n+n-i-1,j+1,n+n-j-1)<<' ';
        cout<<endl;
    }
    system("pause");
}
2013-03-02 20:14
waja
Rank: 2
等 级:论坛游民
帖 子:53
专家分:52
注 册:2012-7-27
收藏
得分:0 
#include <stdio.h>
#define SIZE 3
void main()
{
    int a[6][6] = {0};
    int i, j;
    for (i = 1; i <= SIZE ; i++)
    {
        for (j=i; j <= 6 - i; j++)
        {
            a[i][j] = i;
            a[6 - i][j] = i;
        }
    }
        for (j = 1; j <= SIZE ; j++)
    {
        for (i=j; i <= 6 - j; i++)
        {
            a[i][j] = j;
            a[i][6 - j] = j;
        }
        
    }
   

    for (i = 1; i < 6; i++)
    {
        for(j = 1; j < 6; j++)
            
        {
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
}
2013-03-02 20:29
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:0 
如果用矩阵来看,那么首先他是一个2n-1型的方阵
满足:
1.第一行和第2*n-1行都是1
2.第二行和第2*n-2行都是2
3.第1列和第2*n-1列都是1
4.第2列和第2*n-1列都是2
5.第n行n列是n

用i和j的条件来控制数组的下标

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-03-02 20:41
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
收藏
得分:0 
顶3楼
3楼和7楼的思想是一样的,都是从(i+1,j+1,2n-i-1,2n-j-1)中选一个最小的数
只是版主是自己比较,3楼是用了一个库函数Min罢了。


[ 本帖最后由 shmilyflf 于 2013-3-2 22:36 编辑 ]
2013-03-02 20:42
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
void Print(int n)
{
    int nLine = 0;
    int nOut = 0;

    if ((n % 2) == 1) {
        nLine = 2 * n - 1;
    }
    else {
        nLine = 2 * n - 1;
    }

    for (int i = 1; i <= nLine; i++) {
        for (int j = 1; j <= nLine; j++) {
            nOut = i;
            if (nOut > j) nOut = j;
            if (nOut > (nLine - (i - 1))) nOut = nLine - (i - 1);
            if (nOut > (nLine - (j - 1))) nOut = nLine - (j - 1);

            printf("%d ", nOut);
        }
        printf("\n");
    }
}

int main(int argc, char *argv[])
{
    Print(5);
}

C:\Users\yuccn>C:\code\test\vecter\Debug\vecter.exe
1 1 1 1 1 1 1 1 1
1 2 2 2 2 2 2 2 1
1 2 3 3 3 3 3 2 1
1 2 3 4 4 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 4 4 3 2 1
1 2 3 3 3 3 3 2 1
1 2 2 2 2 2 2 2 1
1 1 1 1 1 1 1 1 1

C:\Users\yuccn>



我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-03-02 20:56
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
逻辑上有点像:

求一个正方形数组中 (i、j)点到正方形的边缘最近的点的距离是多少。长方形的边长为2n(或者2n+1)  

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-03-02 21:39
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:0 
用坐标思想好理解
程序代码:
#include<iostream>
using namespace std;
int main()
{
    int i,j,k,n,a[50][50];
    cin>>n;
    for(k=1; k<=n; k++)
     for(i=k; i<=2*n-k; i++)
      for(j=k; j<=2*n-k; j++)
               a[i][j]=k;
    
    for(i=1; i<=2*n-1; i++) 
    { 
      for(j=1; j<=2*n-1; j++) 
              cout<< a[i][j]<<' ';
            cout<<endl; 
              }
             
     system("pause");
       return 0;
}



[ 本帖最后由 qunxingw 于 2013-3-4 15:13 编辑 ]

www.qunxingw.wang
2013-03-02 22:08
梦幻乐园
Rank: 2
等 级:论坛游民
帖 子:62
专家分:87
注 册:2012-10-25
收藏
得分:0 
#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;
     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-02 22:15
快速回复:一道笔试题
数据加载中...
 
   



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

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