给定程序中,函数FUN的功能是建立一个N*M的矩阵,矩阵元素的规律是:最外层元素的值全部为1,从外向
答案:2 悬赏:80 手机版
解决时间 2021-02-24 15:26
- 提问者网友:你给我的爱
- 2021-02-24 01:24
给定程序中,函数FUN的功能是建立一个N*M的矩阵,矩阵元素的规律是:最外层元素的值全部为1,从外向
最佳答案
- 五星知识达人网友:冷風如刀
- 2021-02-24 02:26
#includeconst int m=10,n=10;void main(){int i,j,x,y,p;int a[n][m];if(m======以下答案可供参考======供参考答案1:#include#define N 5 //数组的行数#define M 6 //数组的列数main(){int i,j,a[N][M]={0};//先将数组值均赋值为0for(j=0;j{ for(i=0;i { if(a[j][i]==0)//if语句,当赋值为0时改变其值为第几维,不为0时不改变其值(下同) a[j][i]=j+1; if(a[N-1-j][i]==0) a[N-1-j][i]=j+1;} for(i=0;i {if(a[i][j]==0)a[i][j]=j+1; if(a[i][M-1-j]==0)a[i][M-1-j]=j+1; }}for(i=0;i{for(j=0;j printf(%2d,a[i][j]);//输出数组元素printf(\n);}}我想的方法是先将数组所有元素赋值为0;在将第一圈赋值为1;第二圈赋值为2 ............。通过值不为0就不改变其值,等于0的就把其值赋值为其圈数!不知道有什么简单的方法没?可以讨论讨论! 谢谢下面的朋友给我的修改,那样效率能更高!但我运行了一下,当N>2M时就不能正确输出了!可能还有你没有想到的地方。根据你的提示将程序修改如下,效率更高!#include#define N 15 //数组的行数#define M 15 //数组的列数main(){int i,j,a[N][M]={0};//先将数组值均赋值为0for(j=0;j{ for(i=j;i{if(a[j][i]==0)//if语句,当赋值为0时改变其值为第几维,不为0时不改变其值(下同)a[j][i]=j+1; if(a[N-1-j][i]==0) a[N-1-j][i]=j+1;} for(i=j;i {if(a[i][j]==0)a[i][j]=j+1; if(a[i][M-1-j]==0)a[i][M-1-j]=j+1; }}for(i=0;i{for(j=0;j printf(%2d,a[i][j]);//输出数组元素printf(\n);}}供参考答案2:#includeconst int m=10,n=10;void main(){int i,j,x,y,p;int a[n][m];p=nfor(i=0;i{ x=i for(j=0;j { y=j
全部回答
- 1楼网友:骨子里都是戏
- 2021-02-24 02:56
感谢回答,我学习了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯