读书人

大家帮忙看下这个程序代码怎么回事

发布时间: 2013-11-08 17:52:14 作者: rapoo

大家帮忙看下这个程序代码咋回事
数字魔方
#include <stdio.h>
int main ()
{
int a[11][11],i,j,M,X,Y;
printf("M=");
scanf("%d",&M);
if (M%2==0)
printf("error\n");
else
{
a[M/2+1][0]=1;
for(i=1;i<=M*M;i++)
{
if(Y==-1)
Y=M-1;
if(X==M)
X=0;
a[X][Y]=i;
if(i%M==0)
X++;
else
{
X--;
Y++;
}
}
for(i=1;i<M;i++)
{for(j=1;j<M;j++)
printf("|\n");
printf("%d",a[i][j]);
printf("\n");
}
}
return 0;
}
[解决办法]
问问题:
首先把你代码的目的说下,
然后把你思路说下,
再把你错误的地方说出来。


[解决办法]
The variable 'Y' is being used without being initialized.
你这个你没初始化 你又没扶植
直接和-1去比啊

scanf("%d",&M);
if (M%2==0)
printf("error\n");
else
{
a[M/2+1][0]=1;
}

还有你这个M不限定多少啊 你就敢 a[M/2+1][0]=1;
这个M要是超级大 不一下就死了
[解决办法]

引用:
数字魔方
#include <stdio.h>
int main ()
{
int a[11][11],i,j,M,X,Y;
X = -1;
Y = -1;
printf("M=");
scanf("%d",&M);
if (M%2==0)
printf("error\n");
else
{
a[M/2+1][0]=1;
for(i=1;i<=M*M;i++)
{
if(Y==-1)
Y=M-1;
if(X==M)
X=0;
a[X][Y]=i;
if(i%M==0)
X++;
else
{
X--;
Y++;
}
}
for(i=1;i<M;i++)
{for(j=1;j<M;j++)
printf("
[解决办法]
\n");
printf("%d",a[i][j]);
printf("\n");
}
}
return 0;
}

加上
X = -1;
Y = -1;
剩下的就是你想完成东西的逻辑问题了 问题不明 推理你要解决的是什么问题是要费脑筋的
[解决办法]
引用:
Quote: 引用:

The variable 'Y' is being used without being initialized.
你这个你没初始化 你又没扶植
直接和-1去比啊

scanf("%d",&M);
if (M%2==0)
printf("error\n");
else
{
a[M/2+1][0]=1;
}

还有你这个M不限定多少啊 你就敢 a[M/2+1][0]=1;
这个M要是超级大 不一下就死了


引用:
The variable 'Y' is being used without being initialized.
你这个你没初始化 你又没扶植
直接和-1去比啊

scanf("%d",&M);
if (M%2==0)
printf("error\n");
else
{
a[M/2+1][0]=1;
}

还有你这个M不限定多少啊 你就敢 a[M/2+1][0]=1;
这个M要是超级大 不一下就死了




输入m的值,怎么限定


scanf("%d",&M);
if (M%2==0)
printf("error\n");
else
{
a[M/2+1][0]=1;
}
俩种方法 你判断下M的值不就得了
例如这么写 代码我没测试过 但是逻辑方法是对的

#define MAX_SIZE 10
int a[MAX_SIZE][2];
M初始化
scanf("%d",&M);


while(M > MAX_SIZE *2){
scanf("%d",&M);
}
if (M%2==0)
printf("error\n");
else
{
a[M/2+1][0]=1;
}

第二种直接保护起来 防止数组越界

#include<assert.h>

assert(0 <= idx && idx < sizeof(a) /sizeof(a[0]));
a[idx] 就是安全的

[解决办法]
我只想说,你的源程序中 X 和 Y 的值确定了,你没确定并且都不知道 X 和 Y 的值是什么,你还拿两个数来相等,我把改过你的源代码给你看看,结果都出来了:
大家帮忙看下这个程序代码怎么回事

读书人网 >C++

热点推荐