马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 御笔剑客 于 2017-11-30 17:17 编辑 #include <stdio.h>
int main()
{
int n,m,k,i,t,j;
scanf("%d",&n);
m=n; //控制列数
int num[n][m]={0};
i=0,t=1; //给第一个元素的初始值
while(t<n*n)
{
//顶行从左往右赋值
for(k=i;k<m;k++)
num[i][k]=t++;
//顶行从上往下赋值
for(j=i+1;j<m;j++)
num[j][m-1]=t++;
//底行从右往左赋值
for(k=m-1;k>0;k--)
num[k][m-1]=t++;
//底行从下往上赋值
for(j=m-1;j>0;j--)
num[j][k]=t++;
i++;
m--;
}
for(i=0;i<n;i++)
{
for(m=0;m<n;m++)
printf("%d ",num[i][m]);
printf("\n");
}
}
问题描述
找出下面给出图形的规律,给出n,画一个n行的对应图形。
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
输入格式
输入包含一个数n。1<=n<=30
1.这段代码中的 int num[m][n]={0};提示error: variable-sized object may not be initialized ,是不支持c99标准还是什么情况呢?codeblock应该支持c99吧?
2.这段代码把上面的数组改成常量定以后,为什么答案是错的呢? int [30][30]={0}; |