输入一个数,输出n*n的矩阵
答案:3 悬赏:60 手机版
解决时间 2021-04-14 23:24
- 提问者网友:孤凫
- 2021-04-14 08:47
给出C++程序代码,谢谢啊!
最佳答案
- 五星知识达人网友:雪起风沙痕
- 2021-04-14 10:17
你是不是要做一个n阶等和幻方,我有个C语言的,和C++应该也差不多:#include <stdio.h> #include <stdlib.h> #include <malloc.h> int main(int argc, char *argv[]) { int n=0, i, j; if(2 == argc){ n=atoi(argv[1]); } else{ printf("N has no value.\n"); return 0; } int **pn; pn=(int **)malloc(n*sizeof(int *)); pn[0]=(int *)malloc(n*n*sizeof(int)); for(i=1;i<n;i++){ pn[i]=pn[0]+i*n; } for(i=0;i<n;i++){ for(j=0;j<n;j++){ pn[i][j]=0; } } int row=0, col=(n-1)/2, nrow=0, ncol=0; pn[row][col]=1; for(i=1;i<n*n;i++){ if(row-1 < 0) nrow=n-1; else nrow=row-1; if(col+1 > n-1) ncol=0; else ncol=col+1; while(0 != pn[nrow][ncol]){ if(nrow+2 > n-1) nrow=nrow-n+2; else nrow=nrow+2; if(ncol-1 < 0) ncol=n-1; else ncol=ncol-1; } pn[nrow][ncol]=i+1; row=nrow; col=ncol; } for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf("%2d ",pn[i][j]); } printf("\n"); } free(pn); return 0; }
全部回答
- 1楼网友:封刀令
- 2021-04-14 11:21
#include "stdio.h" #include "conio.h" int b(int n); int a(int j); main() {
int i,j,k; scanf("%d",&k); for (i=1;i<=k;i++) { for (j=1;j<=k;j++) { printf("%d%s",i*j," "); } printf("\n"); } getch(); }
- 2楼网友:洎扰庸人
- 2021-04-14 10:28
#include <iostream> using namespace std; void main() { int input; cin>>input; for(int i=1;i<=input;i++) { for(int j=1;j<=input;j++) { cout<<i*j<<" "; } cout<<'\n'; }
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯