51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 873|回复: 3
打印 上一主题 下一主题

不知道C语言的问题可不可以提问啊???

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-5-19 18:03:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果可以的话,请帮我解答下这个题目?

要实现这个效果如何?
16 15 14 13
  5   4   3  12
  6   1   2  11
  7   8   9  10

N*N的螺旋矩阵sdlkfj8
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-5-20 09:24:16 | 只看该作者
/*
  N×N螺旋方阵
*/
#include<stdio.h>

#define  N  9
static a[N][N];

void fun(int*,int*,int);

int main(int argc,char*argv[])
{   int i=0,j=0,n=0;
    for(int k=1;k<=N*N;k++)
    {   a[n+i][n+j]=k;
        fun(&i,&j,N-n-n);
        if(i==0 && j==0)n++;
    }
    for(i=0;i<N;i++,printf("\n"))
    for(j=0;j<N;j++)printf("%4d",a[j]);
    return 0;
}

void fun(int*i,int*j,int n)
{     if(*i==0   && *j<n-1)++(*j);
else if(*j==n-1 && *i<n-1)++(*i);
else if(*i==n-1 && *j > 0)--(*j);
else if(*j==0   && *i > 0)--(*i);
}

N的数字自己按自己的题目要求 更改能够得到这种效果吧
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-5-20 12:56:54 | 只看该作者

回复 #2 lin85210 的帖子

我试了一下你的程序,不行啊,然后我从网上又搜了下,搜到下面的程序,是可以运行的
#include <iostream>
using namespace std;

int main()
{ cout << "请输入方阵的阶数:" << endl;
int n;
cin >> n;

int m;
if ( n%2==0 ) m=n/2;
else m=n/2+1;

int i,j,k=0,a[20][20];
for( i=0;i<m;i++ )
{ for( j=i;j<n-i;j++ )
{ k++;
a[j]=k;
}
for( j=i+1;j<n-i;j++ )
{ k++;
a[j][n-i-1]=k;
}
for( j=n-i-2;j>=i;j-- )
{ k++;
a[n-i-1][j]=k;
}
for( j=n-i-2;j>=i+1;j-- )
{ k++;
a[j]=k;
}
}

k=0;
for (i=0;i<n;i++)
for (j=0;j<n;j++)
{ cout << a[j] << '\t';
k++;
if (k%n==0) cout << endl;
}

return 0;
}
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-5-25 20:00:18 | 只看该作者
3Qsdlkfj1
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-18 10:50 , Processed in 0.063826 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表