求一个C语言程序设计:螺旋矩阵. 求C语言程序,N*N的螺旋矩阵。

\u6c42\u4e00\u4efdC\u8bed\u8a00\u505a\u7684\u6570\u5b57\u87ba\u65cb\u77e9\u9635\u7684\u7a0b\u5e8f

#include
#define N 6
int main(void)
{
int i=0,j=0,m=0,n=0,num=0;
int a[N][N];
do
{
for(i=m;i<N-m;i++)
a[i][j]=++num;
--i;
if(num==N*N)break;

for(j=m+1;j<N-m;j++)
a[i][j]=++num;
j--;
if(num==N*N)break;

for(i=N-m-2;i>=m;i--)
a[i][j]=++num;
i++;
if(num==N*N)break;

for(j=N-m-2;j>m;j--)
a[i][j]=++num;
j++;
if(num==N*N)break;

++m;
}while(num<N*N);
printf("\t\t%d\u884c%d\u5217\u87ba\u65cb\u77e9\u9635\n\n",N,N);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%6d",a[i][j]);
printf("\n");
}
}

#include
#include

void main()
{
int i=0,j=0,n=0;
printf("\u8bf7\u8f93\u5165n:");
scanf("%d",&n);//\u77e9\u9635\u9636\u6570
int **p=NULL;//\u4e8c\u7ef4\u6307\u9488\uff0c\u5b58\u653e\u77e9\u9635n*n\u4e2a\u5143\u7d20
p= (int**)malloc(n*sizeof(int*));//\u5148\u5206\u914dn\u4e2a\u4e00\u7ef4\u6307\u9488
if(NULL==p)
exit(1);
for (i = 0; i < n ; i++)
{
p[i] = (int*)malloc(n*sizeof(int));//\u4e3an\u4e2a\u4e00\u7ef4\u6307\u9488\u5206\u914dn\u4e2a\u6574\u578b\u5927\u5c0f\u7684\u7a7a\u95f4
if (NULL==p[i])
exit(1);
}
int flag=n;//\u5269\u4e0b\u77e9\u9635\u7684\u9636\u6570\u63a7\u5236\u5faa\u73af
int row=0,cloumn=0;//\u884c\u5217\u6807\u8bb0\uff0c\u521d\u59cb\u8ba1\u6570\u4e3a0
while(flag)
{
if (flag%2)//\u77e9\u9635\u9636\u6570\u4e3a\u5947\u6570\uff0c\u4e3a\u5de6\u4e0b\u4fa7\u884c\u5217\u8d4b\u503c
{
for (i=0;i<flag;i++)
p[row+flag-1][cloumn+flag-1-i]=flag*flag-i;
for (j=1;j<flag;j++)
p[row+flag-1-j][cloumn]=p[row+flag-1][cloumn]-j;
cloumn++;//\u62c6\u53bb\u4e00\u884c\u4e00\u5217\uff0c\u5f71\u54cd\u4e0b\u6b21\u5faa\u73af\u5217\u4e0b\u6807\uff0c\u52a01
}
else//\u4e3a\u5076\u6570\uff0c\u4e3a\u53f3\u4e0a\u4fa7\u884c\u5217\u8d4b\u503c
{
for (i=0;i<flag;i++)
p[row][cloumn+i]=flag*flag-i;
for (j=1;j<flag;j++)
p[row+j][cloumn+flag-1]=p[row][cloumn+flag-1]-j;
row++;//\u62c6\u53bb\u4e00\u884c\u4e00\u5217\uff0c\u5f71\u54cd\u4e0b\u6b21\u5faa\u73af\u884c\u4e0b\u6807\uff0c\u52a01
}
flag--;//\u5269\u4e0b\u77e9\u9635\u7684\u9636\u6570
}
printf("%d*%d\u9636\u77e9\u9635\u4e3a\uff1a\n",n,n);
i=n;
while(i--)
printf("********");
printf("\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d\t",p[i][j]);
printf("\n");
}

for (i = 0; i < n; i++)
free(p[i]);
free(p);
}

螺旋矩阵:
#include<stdio.h>
main()
{
int a,b,k,n,i,j,a1,b1,m;
int lines[50][50];
scanf("%d",&n);
i=j=0;a=b=n;a1=b1=0;k=1;
if(n==1)
printf(" 1\n");
else
{
for(m=1;m<2*n;m++)
{
if(m%4==1)
{
for(;j<b;j++)
{
lines[i][j]=k;
k++;
}
i++;
j--;
b--;
}
else if(m%4==2)
{
for(;i<a;i++)
{
lines[i][j]=k;
k++;
}
j--;
i--;
a--;
}
else if(m%4==3)
{
for(;j>=b1;j--)
{
lines[i][j]=k;
k++;
}
i--;
j++;
b1++;
}
else
{
for(;i>=a1+1;i--)
{
lines[i][j]=k;
k++;
}
j++;
i++;
a1++;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{ if(j==0)printf(" %2d ",lines[i][j]);
else if(j==n-1)printf("%2d",lines[i][j]);
else
printf("%2d ",lines[i][j]);
}
printf("\n");
}
}
}
和的话加一下就是了;
至于你说的那些个积什么的,比较麻烦。自己再弄弄吧。

  • 姹備竴涓狢璇█绋嬪簭璁捐:铻烘棆鐭╅樀.
    绛旓細璇绋嬪簭鍖呭惈濡備笅鍥涗釜鍔熻兘:(1)灏铻烘棆鏂归樀瀛樻斁鍒颁簩缁存暟缁勪腑骞舵妸瀹冭緭鍑,瑕佹眰鐢辩▼搴忚嚜鍔ㄧ敓鎴愯灪鏃嬫柟闃(鑰屼笉鏄汉涓哄湴鍒濆鍖栨垨閫愪釜璧嬪)銆傝灪鏃嬫柟闃电殑褰㈠紡涓: 娉ㄦ剰:瑕佸悓鏃惰緭鍑哄涓婄殑涓や釜骞舵帓鐨勭煩闃点 (2) 姹傝繖涓涓煩闃鐨勫拰 (3) 姹傝繖涓や釜鐭╅樀鐨勪箻绉 ... 灞曞紑 150xiaobao | 娴忚713 娆 |涓炬姤 鎴戞湁鏇村ソ鐨勭瓟妗堟帹鑽...
  • 涓閬铻烘棆鐭╅樀鐨C璇█棰!
    绛旓細for (i = 1; i<=n ; i++)//鍏堝瓨鏁扮粍绗竴琛岋紝i涓烘暟缁勯噷瀛樺叆鐨勬暟锛屽湪绋嬪簭涓竴鐩撮掑 { mat[0][i-1] = i;} u = 1; d = n -1 ; l = 0 ; r = n -1;//鍒濆鍖铻烘棆鐨勪笂涓嬪乏鍙宠竟鐣岋紝鍥犱负瀛樺叆浜嗙涓琛岋紝鎵浠 = 1 while(1)//姝ゅ惊鐜疄鐜拌灪鏃嬮『搴忓瓨鍏ユ暟鎹 { for (j = ...
  • C璇█铻烘棆鐭╅樀
    绛旓細i,j,n,number=1,a[30][30]; printf("Please input a number N:");scanf("%d",&n); for(i=0;i<=n/2;i++) //鎺у埗鎬诲叡鏈夊嚑涓『鏃堕拡铻烘棆 { for(j=i;j<n-i;j++) //鍚戝彸锛堟敼鍙樼旱鍧愭爣锛屼繚鎸佹í鍧愭爣涓嶅彉锛 a[i][j]=number++;for(j=i+1;j<n-i;j++) //鍚戜笅锛堟敼鍙樻í鍧...
  • C璇█缂栧啓 铻烘棆鐭╅樀
    绛旓細include <memory.h> include <cstring> define N 5 void main(){ int arry[N][N]={0};inti,j,a,b;int n=1;int L;L=(N+1)/2;for (i=0;i<L;i++){ b=i;for (a=i;a<N-i;a++){ arry[a][b]=n++;} a--;for (b=i+1;b<N-i;b++){ arry[a][b]=n++;} b...
  • c璇█缂栫▼瀹炵幇涓涓灪鏃嬬煩闃,渚嬪杈撳叆 2 4 杈撳嚭:1 2 3 4 8 7 6 5...
    绛旓細matrx1(a,m,n);output(a,m,n);} 杩欐槸鏀瑰ソ鐨绋嬪簭锛屼富瑕佹湁涓変釜闂 杩欎釜瀹氫箟搴旇鏀规垚杩欐牱锛歛[N][N]={0};right鍜宒own鐨勬潯浠跺繕璁板噺涓浜嗭紱姣忎竴涓猧f閲岄潰鍙樺寲搴旇鏄浐瀹氱殑锛屽彧闇鍙樺寲涓涓潗鏍囧氨鍙互浜嗭紝鍥犱负鍙兘妯珫绉诲姩锛屾墍浠ヤ竴娆″彧闇瑕佸彉鍖栦竴涓獂锛屾垨鑰呬竴涓獃銆俻s.鎻愪緵鍙︿竴涓濊矾锛岀洿鎺ユ寜琛屽垎...
  • 姹備竴浠C璇█鍋氱殑鏁板瓧铻烘棆鐭╅樀鐨绋嬪簭
    绛旓細int main(void){ int i=0,j=0,m=0,n=0,num=0;int a[N][N];do { for(i=m;i<N-m;i++)a[i][j]=++num;--i;if(num==N*N)break;for(j=m+1;j<N-m;j++)a[i][j]=++num;j--;if(num==N*N)break;for(i=N-m-2;i>=m;i--)a[i][j]=++num;i++;if(num...
  • c璇█缂栫▼杈撳叆涓涓鏁存暟n,鐢熸垚涓涓嗘椂閽堢殑铻烘棆鐭╅樀
    绛旓細include<stdio.h>#define N 20void matrx1(int a[][N],int m,int n){int d,x=0,y=0;int right,left,up,down;for(d=1;d<=m*n;d++){a[x][y]=d;right=y<n-1&&a[x][y+1]==0;left=y>0&&a[x][y-1]==0;down=x<m-1&&a[x+1][y]==0;up=x>0&&a[x-1][y...
  • 姹C璇█9*9鎴杗*n閫嗘椂閽铻烘棆鐭╅樀,浜岀淮鏁扮粍 鍥句腑浜岄涓夐浠g爜鍔犳楠よВ閲...
    绛旓細//鍏堝鍩烘湰鐨勶紝鍏辩敤瀹氫箟int a[10][10],i,j,m,n;//鏈缁堝彧浣跨敤1..9锛0鍏冪礌涓嶇敤銆傜涓涓煩闃锛岃竟妗嗗拰瀵硅绾夸负1锛屽叾瀹冧负0锛绋嬪簭浠g爜锛歠or (i=1;i<=9;i++)for (j=1;j<=9;j++)a[i][j] = (i==j || i+j==10 || i==1 || j==1 || i==9 || j==9) ? 1 : ...
  • 涓涓5x5鐨铻烘棆鐭╅樀濡備笅鎵绀,C璇█缂栧啓绋嬪簭杈撳嚭N x N鐨勮灪鏃嬬煩闃 (N<10...
    绛旓細MAX 500 main(){ int i=0,j=0,a[MAX][MAX]={0},n,number=1,mod=1;printf("杈撳叆闃舵暟\n");scanf("%d",&n);getchar();do { if(a[i][j]==0){ a[i][j]=number;number++;} if(mod==1){ if(j<n-1&&a[i][j+1]==0)j++;else { i++;mod=2;} } else if(mod=...
  • C璇█,杈撳嚭4*4鐨铻烘棆鐭╅樀銆
    绛旓細杈撳嚭缁撴灉鏄互涓嬬殑鏍峰瓙鍚楋紵1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7
  • 扩展阅读:c++语言入门自学 ... 学习c++的视频 ... 一节课就可以学会c++视频 ... c++入门自学 ... c++免费视频教程 ... c++简单程序实例 ... 一节课教你学会c++视频 ... c++程序设计电子版 ... c++编程适合几岁学 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网