这个C语言程序到底哪儿错了嘛!!在VC++、DEV C++里面运行错误类型都不一样。我觉得没有错啊。

#include<stdio.h>#include<conio.h>main(){intn,i,j,k=1;printf("odd:n=");scanf("%d",&n)... #include<stdio.h>
#include<conio.h>
main()
{
int n,i,j,k=1;
printf("odd: n=");
scanf("%d",&n);
int a[n][n]={0};
i=0;
j=(n-1)/2;
a[i][j]=k;
k++;
while(k<=n*n){
i--;j++;
if (j>=n && i<0 || a[i][j]!=0) {i+=2;j--;}
else if(i<0 && j<n) i=n-1;
else if(j>=n && i>=0) j=0;
a[i][j]=k;
k++;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%3d",a[i][j]);
printf("\n");
}
getch();
}
展开
 我来答
wanglei980823
2012-05-22 · TA获得超过103个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:77.3万
展开全部
int a[n][n]={0};
你这样定义了数组a是只包含"0"一个元素的数组,后面肯定出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
填空还是选择
2012-05-22 · TA获得超过945个赞
知道小有建树答主
回答量:520
采纳率:100%
帮助的人:411万
展开全部
2维数组的动态分配不能像你哪样,编译通不过
int a[n][n]={0};
下面这样才行
int n;
scanf("%d",&n);
int **a=new int*[n];
for (int i=0;i<n;i++)
{
a[i]=new int[n];
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WinQin108
2012-05-22 · 超过11用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:38.4万
展开全部
int a[n][n]={0};有错,不能这样建立数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
glorylry
2012-05-22
知道答主
回答量:48
采纳率:0%
帮助的人:16.2万
展开全部
你想你应该规定下输入n的范围 要是你的n直接等于零 那么j=(n-1)/2;a[i][j]=k直接就错了么 可以试着改下 还有有错要加错误信息啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
binglink
2012-05-22 · TA获得超过1101个赞
知道小有建树答主
回答量:639
采纳率:0%
帮助的人:465万
展开全部
int a[n][n]={0}; 静态数组是不能这样定义的, 数组大小应该是常量.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式