51Testing软件测试论坛
标题:
怎样求这样一个矩阵?
[打印本页]
作者:
Susan1202
时间:
2007-7-16 21:06
标题:
怎样求这样一个矩阵?
假如有一个nxm 的矩阵,其值分布如下, 哪位能用C or C++ 求出呀, 谢谢帮忙啦.
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
作者:
Jor
时间:
2007-7-16 21:15
写一下思路
定义4个m = 4,m=0,i=0,j=0作如下循环
while(j<m) j++;
while(i<m) i++;
while(j>n) j--;
whlie(i>n) i--;
k--;
n++;
[
本帖最后由 Jor 于 2007-7-16 21:18 编辑
]
作者:
Susan1202
时间:
2007-7-16 21:23
Actaully , i can't get you, could you explain clearly, maybe my brain doesn't work smartly now. thank you .
作者:
Jor
时间:
2007-7-16 21:31
int a[4][4];
int m = 4,m=0,i=0,j=0,b=1;
while(m!=n) {
while(j<m) {a [ i] [j]=b;j++;b++;}
while(i<m) {a [ i] [j]=b;i++;b++;}
while(j>n) {a [ i] [j]=b;j--;b++;}
whlie(i>n) {a [ i] [j]=b;i--;b++}
m--;
n++;
}
[
本帖最后由 Jor 于 2007-7-16 21:33 编辑
]
作者:
keenling
时间:
2007-7-16 22:08
complete code for c++:
#include <iostream.h>
int main(int argc,char* argv[])
{
int a[5][5];
int m_b,n_b,m_t,n_t,i,j,v;
v=1;i=0;j=0;
m_b=0;n_b=0;
m_t=4;n_t=4;
while((m_b<=m_t) && (n_b<=n_t))
{
while(j<=m_t) {a
[j]=v; v++; j++;}
j--;v--;
while(i<=n_t) {a
[j]=v; v++; i++;}
i--;v--;
while(j>=m_b) {a
[j]=v; v++; j--;}
j++;v--;
while(i>=m_b+1) {a
[j]=v; v++; i--;}
i++;v--;
m_b++;m_t--;n_b++;n_t--;
}
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
cout<<a
[j]<<" ";
cout<<endl;
}
return 0;
}
作者:
keenling
时间:
2007-7-16 22:11
再改良成工整一点的:
#include <iostream.h>
int main(int argc,char* argv[])
{
int a[5][5];
int m_b,n_b,m_t,n_t,i,j,v;
v=1;i=0;j=0;
m_b=0;n_b=0;
m_t=4;n_t=4;
while((m_b<=m_t) && (n_b<=n_t))
{
while(j<=m_t) {a
[j]=v; v++; j++;}
j--;v--;
while(i<=n_t) {a
[j]=v; v++; i++;}
i--;v--;
while(j>=m_b) {a
[j]=v; v++; j--;}
j++;v--;
while(i>=m_b+1) {a
[j]=v; v++; i--;}
i++;v--;
m_b++;m_t--;n_b++;n_t--;
}
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
cout<<a
[j]<<"\t";
cout<<endl;
}
return 0;
}
作者:
keenling
时间:
2007-7-16 23:13
不好意思,上面那个算法在某些情况下会有点问题,而且这里的文本编辑有BUG,不能正常显示.我另外发一个帖子,把源代码贴出来.
作者:
Jor
时间:
2007-7-16 23:26
瓦。。楼上的写的那么完整阿。。偶也来写个 顺便骗骗帖子~~~
#include "stdio.h"
void main() {
int a[5][5];
int m=4,n=0,b=1;
int s=0,t=0;
int i=0,j=0;
while((m>=2) && (n<=2)) {
while(j<=m) {a[ i][j]=b;j++;b++;}
i++;j--;
while(i<=m) {a[ i][j]=b;i++;b++;}
j--;i--;
while(j>=n) {a[ i][j]=b;j--;b++;}
i--;j++;
n++;
while(i>=n) {a[ i][j]=b;i--;b++;}
m--;
j++;i++;
}
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
printf("%d ",a[ i][j]);
printf("\n");
}
}
作者:
lhjtc8257
时间:
2007-7-17 23:27
#include <stdio.h>
main()
{
int array[5][5],t=0,m=0,r=0,c=0,s1=1,s2=4,s3=0,s4=4,i=1;
while(s1!=4)
{
while(m<=s4)
{
array[t][m]=i;
m++;
i++;
}
s4--;
m--;
i--;
while(t<=s2)
{
array[t][m]=i;
t++;
i++;
}
s2--;
t--;
i--;
while(m>=s3)
{
array[t][m]=i;
m--;
i++;
}
s3++;
m++;
while(t>s1)
{
t--;
array[t][m]=i;
i++;
}
t=s1;
m=s1;
s1++;
}
for(r=0;r<5;r++)
{
for(c=0;c<5;c++)
printf("%3d",array[r][c]);
printf("\n");
}
}
sdlkfj1
作者:
Susan1202
时间:
2007-7-19 22:42
收到, 谢谢个位的回复
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2