利用for循环 做出一个4*4的循环数组;
#include<stdio.h>intmain(){ints[4][4];inta;intx;inty;intsum=1;for(a=0;a<=2;a++){for(x...
#include<stdio.h>
int main()
{
int s[4][4];
int a;
int x;
int y;
int sum=1;
for(a=0;a<=2;a++)
{
for(x=a;a<4;x++)
{s[x][a]=sum++;
}
for(y=a+1;y<4;y++)h
{s[4-a-1][y]=sum++;
}
for(x=4-a-2;x<=2;x--)
{s[x][4-a-1]=sum++;
}
for(y=4-a-2;y>a;y--)
{s[a][y]=sum++;
}
}
for(x=0;x<4;x++)
{
for(y=0;y<4;y++){
printf("%6d\t",s[x][y]);
}
printf("\n\n");
}
return 0;
}
什么也输出不出来 求大神指点!!!
螺旋矩阵。。。 展开
int main()
{
int s[4][4];
int a;
int x;
int y;
int sum=1;
for(a=0;a<=2;a++)
{
for(x=a;a<4;x++)
{s[x][a]=sum++;
}
for(y=a+1;y<4;y++)h
{s[4-a-1][y]=sum++;
}
for(x=4-a-2;x<=2;x--)
{s[x][4-a-1]=sum++;
}
for(y=4-a-2;y>a;y--)
{s[a][y]=sum++;
}
}
for(x=0;x<4;x++)
{
for(y=0;y<4;y++){
printf("%6d\t",s[x][y]);
}
printf("\n\n");
}
return 0;
}
什么也输出不出来 求大神指点!!!
螺旋矩阵。。。 展开
3个回答
展开全部
调试了一下,问题在第二重循环的控制不好,导致数组操作越界。
修改代码和注释如下:
#include<stdio.h>
int main()
{
int s[4][4];
int a;
int x;
int y;
int sum=1;
//for(a=0;a<=2;a++) 多了等号
for(a=0;a<2;a++)
{
//for(x=a;a<4;x++) 下边界也要收缩,变量使用错误,导致越界
for(x=a;x<4-a;x++)
{
s[x][a]=sum++;
}
//for(y=a+1;y<4;y++)h 下边界也要收缩,拼写错误
for(y=a+1;y<4-a;y++)
{
s[4-a-1][y]=sum++;
}
//for(x=4-a-2;x<=2;x--) 下边界条件错误,导致越界
for(x=4-a-2;x>=a;x--)
{
s[x][4-a-1]=sum++;
}
for(y=4-a-2;y>a;y--)
{
s[a][y]=sum++;
}
}
for(x=0;x<4;x++)
{
for(y=0;y<4;y++)
{
printf("%6d\t",s[x][y]);
}
printf("\n\n");
}
return 0;
}
在VC6调试通过,如下图:
供参考。
2015-11-19
展开全部
#include<stdio.h>
int main()
{
int s[4][4];
int a;
int x;
int y;
int sum=1;
for(a=0;a<2;a++)
{
for(x=a;x<4-a;x++)
{
s[x][a]=sum++;
}
for(y=a+1;y<4-a;y++)
{
s[4-a-1][y]=sum++;
}
for(x=4-a-2;(x<4-a-1) && (x>=a);x--)
{
s[x][4-a-1]=sum++;
}
for(y=4-a-2;y>a;y--)
{
s[a][y]=sum++;
}
}
for(x=0;x<4;x++)
{
for(y=0;y<4;y++)
{
printf("%6d\t",s[x][y]);
}
printf("\n\n");
}
return 0;
}
这是修改之后的,你可以对比一下,另外你可能粘的有问题,编译都不过的。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言的数组概念的学习,通过for循环输出打印数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询