|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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}; |
|