public class Hii
{
public static void main(String args[])
{
int n=3;
int i,x,y;
Integer a[][]=new Integer [100][100];
x=1;
y=n/2+1;
a[x][y]=1;
for(i=2;i<=n*n;i++)
if ((x-1==0)&&(y-1==0)) /*矩阵左上角向下放数*/
{x++;
a[x][y]=i;}
else
{x--; /*向斜上延伸放数*/
if(x==0)
x=n;
y--;
if(y==0)
y=n;
if(a[x][y]>0)
x=x+2;
y++;
a[x][y]=i;} for(x=1;x<=n;x++)
{for(y=1;y<=n;y++)
System.out.println(a[x][y]);}
}
}语法又错了,请大家指点!
{
public static void main(String args[])
{
int n=3;
int i,x,y;
Integer a[][]=new Integer [100][100];
x=1;
y=n/2+1;
a[x][y]=1;
for(i=2;i<=n*n;i++)
if ((x-1==0)&&(y-1==0)) /*矩阵左上角向下放数*/
{x++;
a[x][y]=i;}
else
{x--; /*向斜上延伸放数*/
if(x==0)
x=n;
y--;
if(y==0)
y=n;
if(a[x][y]>0)
x=x+2;
y++;
a[x][y]=i;} for(x=1;x<=n;x++)
{for(y=1;y<=n;y++)
System.out.println(a[x][y]);}
}
}语法又错了,请大家指点!
{
public static void main(String args[])
{
int n=3;
int i,x,y;
Integer a[][]=new Integer [100][100];
x=1;
y=n/2+1;
a[x][y]=new Integer(1); //~~~~~~~~~~~~~~~~
for(i=2;i<=n*n;i++)
if ((x-1==0)&&(y-1==0)) /*矩阵左上角向下放数*/
{x++;
a[x][y]=new Integer(i); //~~~~~~~~~~~~~~~~
}
else
{x--; /*向斜上延伸放数*/
if(x==0)
x=n;
y--;
if(y==0)
y=n;
if(a[x][y].intValue()>0) //~~~~~~~~~~~~~
x=x+2;
y++;
a[x][y]=new Integer(i); //~~~~~~~~~~~~~~~~
} for(x=1;x<=n;x++)
{for(y=1;y<=n;y++)
System.out.println(a[x][y]);}
}
}
int a[][]=new int[100][100];
at hii.main(Hii.java:97)
Integer a[][]=new Integer [100][100];
int a[][] =new int[100][100];
正确写法为a[x][y]=new Integer(1);
同样的a[x][y]=i改为a[x][y]=new Integer(i);
at hii.main(Hii.java:97)
改好了,运行是这个错误!
97:if(a[x][y].intValue()>0)这是意思啊?
#include <stdio.h>
main()
{
int n;
int i,x,y;
int a[100][100];
clrscr();
scanf("%d",&n);x=1,y=n/2+1;
a[x][y]=1;for(i=2;i<=n*n;i++)
if ((x-1==0)&&(y-1==0)) /*矩阵左上角向下放数*/
{x++;
a[x][y]=i;
}
else
{x--; /*向斜上延伸放数*/
if(x==0)
x=n;
y--;
if(y==0)
y=n;
if(a[x][y]>0)
x=x+2,y++;
a[x][y]=i;
}for(x=1;x<=n;x++)
{for(y=1;y<=n;y++) printf("%d ",a[x][y]); printf("\n");
}getch();
}这是C程序
public Hii() {
}
public static void main(String args[]){
int n=3;
int i,x,y;
int a[][]=new int[100][100];
x=1;
y=n/2+1;
a[x][y]=1;
for(i=2;i<=n*n;i++)
if ((x-1==0)&&(y-1==0)) /*矩阵左上角向下放数*/
{x++;
a[x][y]=i;}
else
{x--; /*向斜上延伸放数*/
if(x==0)
x=n;
y--;
if(y==0)
y=n;
if(a[x][y]>0)
x=x+2;
y++;
a[x][y]=i;} for(x=1;x<=n;x++)
{for(y=1;y<=n;y++)
System.out.println(a[x][y]);}
}
}--------------
运行结果是这个?没有错吧
070090080