哎,为了你这个小东西,大半夜的,我在这机子上装了个VC。
以下是用C文件写的,调试通过,产生哪个啥破矩阵。
先给你几个建议。
1。写程序,只是一个流程翻译的过程。遵循“从上至下,由简至精”的翻译原则。
2。写程序前,你得先有个算法或者是流程。别瞎写,这不是流水账。
3。写程序中,你总得来点注释吧。你这么个写法叫哥咋看。
4写程序后,你也要有点总结吧。不总结永远不会有大的提高。
5。
你说你不会太难的,我写你看的懂得。但是看懂后,水平提高也不会那么多。
**********************蛋疼的分割线************************************************
#include
main()
{
int a[10][10]={0},x,num,zuobiao_r,zuobiao_l,a_bianjie,i; //啥变量都在这定义
scanf("%d",&x); //输入个阶层数x
zuobiao_r=x/2; //E文不好 用拼音代替了 这个是坐标值 确定自然数1的坐标
zuobiao_l=0;
a_bianjie=x-1; //矩阵的边界
a[zuobiao_r][zuobiao_l]=1; //先把这个1给写入了
for(i=2;i<=x*x;i ) //从2开始到x*x打止 循环x-1次 i值是要填写的数值 循环累加
{
if(zuobiao_r==a_bianjie) //计算下一个的横坐标
zuobiao_r=0;
else
zuobiao_r ;
if(zuobiao_l==0) //计算下一个纵坐标
zuobiao_l=a_bianjie;
else
zuobiao_l--;
if(a[zuobiao_r][zuobiao_l]!=0) //如果下一个坐标是有数据的
{
if(zuobiao_r==0) //退回上一个横坐标
zuobiao_r=a_bianjie;
else
zuobiao_r--;
if(zuobiao_l==a_bianjie) //退回上一个纵坐标
zuobiao_l=0;
else
zuobiao_l ;
zuobiao_l ; //纵坐标往下挪一个
}
a[zuobiao_r][zuobiao_l]=i; //在坐标上写入i值
}
for(zuobiao_r=0;zuobiao_r<=a_bianjie;zuobiao_r ) //输出整个矩阵
{
for(zuobiao_l=0;zuobiao_l<=a_bianjie;zuobiao_l )
{
printf("%d",a[zuobiao_l][zuobiao_r]);
}
printf("
"); //别忘记这个换行了
}
}。
全部