急需一个c语言程序题的答案,谢谢

使用指针变量及宏定义,宏名为limit,建立一个螺旋数组A[limit][limit]并输出。例如:#define limit 5 时:

13 14 15 16 1

12 23 24 17 2

11 22 25 18 3

10 21 20 19 4

9 8 7 6 5

这是个魔方矩阵问题,给你个答案:
把里面需要输入的地方改成你的宏定义就行了

#include <stdio.h>
void main()
{ int a[15][15],i,j,k,m,n,p;
p=1;
while(p==1)
{
printf("Enter n (n is a odd number from 3 to 15):> ");
scanf("%d",&n);
if((n>=3)&&(n<=15)&&(n%2==1))
p=0;
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=0;
j=n/2;
a[0][j]=1;
for(k=2;k<=n*n;k++)
{ i=i-1;
j=j+1;
if((i<0)&&(j>n-1))
{ i=i+2;
j=j-1;
}
else
{ if(i<0)
i=n-1;
if(j>n-1)
j=0;
}
if(a[i][j]==0)
a[i][j]=k;
else
{ i=i+2;
j=j-1;
a[i][j]=k;
}
}
printf("\n");
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言程序设计,求答案。万分感谢!
int main(){ char c;scanf("%c",&c);if('a'<=c&&c<='z')printf("%c\\n",char(c-32));else if('A'<=c&&c<='Z')printf("%c\\n",char(c+32));else printf("what you input is not a letter! ");return 0;} 第二题的:include<stdio.h> int main(){ int x,y;...

请问这个c语言程序题怎么做呀,能具体解释一下吗,谢谢啦
答案是A 表达是(!x==0)按照符号优先级,!大于== !(逻辑取反),C语言中非零为真 !x==0,只有当x为非零数成立,成立,即为真。当x为0时候,表达式不成立,为假。结论:x为0即为假,x不为0为真。B x :即x非零为真,正确。C x!= 0 :当x为0的时候为假,x不为0的时候成立...

C语言题目,求大神解析!
a.i=2;printf("%d",a.i); \/\/输出2 } 程序2,输出:8 12 20 include<stdio.h> int f(int a){ auto int b=1;static int c=2; \/\/此变量前一次调用后的值,可以保留到下一次调用时继续使用 b+=1;c*=2;return(a+b+c);\/\/第一次返回2+2+4=8(c变为4)\/\/第二次...

C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下。
^是按位异或运算符,需要把a和b的值化为二进制数后进行按位异或就能得到答案。题中,a=3 ,二进制为:0011;b=6,二进制值为:0110。所以(a^b)按位异或后的值为0101也就是5,左移两位后值(二进制)为:010100 也就是 :20

c语言的编程题,求答案。谢谢了
for(j=0;j<strlen(chain);j++) { switch(chain[j]) { case 'A':putchar('T');break; case 'T':putchar('A');break; case 'G':putchar('C');break;

C语言:这个题的答案和解法那个大神能给我写一下谢谢!
m=1+1+2+3+4 所以输出m=11

一个C语言指针问题。求大佬解答?
在这个程序中,我们首先提示用户输入方阵的尺寸,然后输入方阵的元素。接着,我们通过遍历方阵的每一行,并使用指针指向每行对应列的元素,来求出方阵对角线元素之和。最后,我们输出结果。程序的输出示例如下:include <stdio.h> int main(){ \/\/ 方阵的尺寸 int n;printf("Enter the size of the ...

求解C语言程序输出题,如图,谢谢。
解析:本题目主要考了if-else语句,include<stdio.h> void main(){ int a=100, x=10, y=20, ok1=5, ok2=0;if(x<y) \/*10<20满足条件,执行下边的*\/ if(y!=10) \/*20不等于10,满足条件,继续执行*\/ if(!ok1) \/*对5取反,那么是0,那么不执行下边,而执行else*\/ a=1;else ...

c语言程序设计简答题汇总?
C语言题目简答题1、(c=65c=90)?(c=c+32):(c=c)\/*符合你的要求,不是C语句,而是C表达式*\/ 2、a%10==5\/*符合你的要求,不是C语句,而是C表达式*\/ 3、【题目不全啊】4、【题目不全啊】5、这个题算是所有6个题中最难的了。首先,fun函数中定义了一个static类型的变量,含义如下:有...

3小题c语言题目。谢谢啦,帮我做1题也行~
第三题的程序及结果 include <stdio.h> include <stdlib.h> int main(){ int n,i,chengji; \/*定义n、成绩、循环控制变量*\/ int a=0,b=0,c=0,d=0,e=0; \/*定义分别存放个等级结果变量*\/ scanf("%d",&n);for(i=1;i<=n;i++){ scanf("%d",&chengji);switch(chengji\/10)...

相似回答