| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1349 人关注过本帖
标题:请大家帮忙看看 ,不知道哪里出问题了!
只看楼主 加入收藏
神经彬
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2016-10-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
请大家帮忙看看 ,不知道哪里出问题了!
题目:打印蛇形阵
Sample Output
21    22    23    24    25
20    7    8    9    10
19    6    1    2    11
18    5    4    3    12
17    16    15    14    13

程序代码:
#include<stdio.h>
#define N 10
int a[N][N]={0};
int count;
void array(int line,int column)
{
    printf("vvvv");
    if(line>column){
        return;
    }else if(line=column){
        a[line][column]=--count;
    }
    int narrow=line;
    for(;column>=narrow;column--){
        a[line][column]=--count;
    }
    for(;line<N-narrow;line++){
        a[line][column]=--count;
    }
    for(;column<N-narrow;column++){
        a[line][column]=--count;
    }
    for(;line>narrow;line--){
        a[line][column]=--count;
    }
    array(line+1,column-1);
}
int main()
{
    count=N*N+1;
    array(0,N);
    for(int i=0;i<N;i++){
        for(int j=0;j<N;j++){
            printf("%d\t",a[i][j]);
        }
    }

    return 0;
}

运行出来还都是0;
搜索更多相关主题的帖子: count 2520 
2016-10-27 23:44
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:1 
}else if(line=column){    //这里写成赋值了??
2016-10-28 00:29
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:4 
程序代码:
#include<stdio.h>
#define N 10
int a[N][N]={0};
int count;
void array(int line,int column)
{
    int narrow=line;
    if(line>column)
        return;
    else if(line==column)//怎么会漏了个= 
        a[line][column]=--count;
    for(;column>narrow;column--)
        a[line][column]=--count;
    for(;line<N-narrow-1;++line)// 
        a[line][column]=--count;
    for(;column<N-narrow-1;column++)//
        a[line][column]=--count;
    for(;line>narrow;--line)
        a[line][column]=--count;
    array(line+1,column-1);
}
int main()
{
    int i,j;
    count=N*N+1;
    array(0,N);
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            printf("%d\t",a[i][j]);
    return 0;
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-10-28 00:59
神经彬
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2016-10-11
收藏
得分:0 
回复 2楼 word123
对哦,这也是个问题
2016-10-28 22:24
神经彬
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2016-10-11
收藏
得分:0 
回复 3楼 九转星河
还是有错的,我又改了一下  还是不知道哪有问题
程序代码:
#include<stdio.h>
#define N 7
int a[N][N]={0};
int count;
void array(int line,int column)
{   

    if(line>column){
        return;
    }else if(line==column){
        a[line][column]=--count;
    }
    int narrow=line;
    for(;column>=narrow;column--){
        a[line][column]=--count;
    }
    for(;line<N-narrow;++line){
        a[line][column]=--count;
    }
    for(;column<N-narrow;++column){
        a[line][column]=--count;
    }
    for(;line>narrow;--line){
        a[line][column]=--count;
    }
    array(line+1,column-1);
}
int main()
{
    int i,j;
    count=N*N+1;
    array(0,N-1);
    for(i=0;i<N;i++){
        for(j=0;j<N;j++){
            printf("%d\t",a[i][j]);
        }
        printf("\n");
    }

    return 0;
}

2016-10-28 22:37
神经彬
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2016-10-11
收藏
得分:0 
程序代码:
#include<stdio.h>
#define N 7
int a[N][N]={0};
int count;
void array(int line,int column)
{   

    if(line>column){
        return;
    }else if(line==column){
        a[line][column]=--count;
    }
    int narrow=line;
    for(;column>=narrow;column--){
        a[line][column]=--count;
    }
    for(;line<N-narrow;++line){
        a[line][column]=--count;
    }
    for(;column<N-narrow;++column){
        a[line][column]=--count;
    }
    for(;line>narrow;--line){
        a[line][column]=--count;
    }
    array(line+1,column-1);
}
int main()
{
    int i,j;
    count=N*N+1;
    array(0,N-1);
    for(i=0;i<N;i++){
        for(j=0;j<N;j++){
            printf("%d\t",a[i][j]);
        }
        printf("\n");
    }

    return 0;
}

求大神
2016-10-28 22:38
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:1 
能不能把你的代码的思路说一下,感觉看的好累了。。。
2016-10-28 22:56
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:10 
//你的代码要好好考虑拐弯的地方,还有最后一次停止的时机
#include<stdio.h>
#define N 7
int a[N][N]={0};
int count;
void array(int line,int column)
{   

    if(line>column){
        return;
    }else if(line==column){
        a[line][column]=--count;
        //printf("%d---%d--%d---%d\n",line,column,count,a[line][column]);
        return;
    }
    int narrow=line;
    for(;column>=narrow;column--){
        a[line][column]=--count;
    }
    column++;
    line++;
    for(;line<N-narrow;++line){
        a[line][column]=--count;
    }
    line--;
    column++;
    for(;column<N-narrow;++column){
        a[line][column]=--count;
    }
    column--;
    line--;
    for(;line>narrow;--line){
        a[line][column]=--count;
    }
    array(line+1,column-1);
}
int main()
{
    int i,j;
    count=N*N+1;
    array(0,N-1);
    for(i=0;i<N;i++){
        for(j=0;j<N;j++){
            printf("%d\t",a[i][j]);
        }
        printf("\n");
    }

    return 0;
}
2016-10-28 23:28
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:4 
#include <stdio.h>
#define N 5
int main( void )
{
    unsigned a[N][N];
    for( size_t r=N/2,c=N/2,n=1; n<=N*N; ++n )
    {
        a[r][c] = n;
        if( r<=c&&N-1-r>=c )
            ++c;
        else if( r<c&&N-1-r<c )
            ++r;
        else if(r>=c&&N-1-r<c)
            --c;
        else
            --r;
    }

    for( size_t r=0; r!=N; ++r )
    {
        for( size_t c=0; c!=N; ++c )
            printf( "%u\t", a[r][c] );
        putchar( '\n' );
    }
    return 0;
}
2016-10-29 12:33
神经彬
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2016-10-11
收藏
得分:0 
回复 8楼 word123
谢谢啦!解决啦
2016-10-29 16:10
快速回复:请大家帮忙看看 ,不知道哪里出问题了!
数据加载中...
 
   



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

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