<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                25 ###原題描述 題要求將給定的N個正整數按非遞增的順序,填入“螺旋矩陣”。所謂“螺旋矩陣”,是指從左上角第1個格子開始,按順時針螺旋方向填充。要求矩陣的規模為m行n列,滿足條件:m*n等于N;m>=n;且m-n取所有可能值中的最小值。 輸入格式: 輸入在第1行中給出一個正整數N,第2行給出N個待填充的正整數。所有數字不超過104,相鄰數字以空格分隔。 輸出格式: 輸出螺旋矩陣。每行n個數字,共m行。相鄰數字以1個空格分隔,行末不得有多余空格。 輸入樣例: 12 37 76 20 98 76 42 53 95 60 81 58 93 輸出樣例: 98 95 93 42 37 81 53 20 76 58 60 76 ###代碼 ~~~ #include<stdio.h> #include<stdlib.h> int *buf,**matrix,guide=0,m,n,N; struct position { int x; int y; } filler={0,0},direction[4]={{1,0},{0,1},{-1,0},{0,-1}}; int rcompare(const void *a,const void *b) { return *(int *)b-*(int *)a; } int canmove() { int x,y; x=filler.x+direction[guide].x; y=filler.y+direction[guide].y; if(x<0||x>=n||y<0||y>=m) { return 0; } else if(matrix[y][x]!=0) { return 0; } return 1; } int move(int count) { matrix[filler.y][filler.x]=buf[count]; if(count==N-1) { return 0; } while(!canmove()) { guide=(guide+1)%4; } filler.y+=direction[guide].y; filler.x+=direction[guide].x; return 0; } int main() { int i,j,count=0; scanf("%d",&N); buf=(int *)malloc(N*sizeof(int)); for(i=0;i<N;i++) { scanf("%d",buf+i); } qsort(buf,N,sizeof(int),rcompare); m=N; n=1; for(i=N;i>0;i--) { if(N%i==0) { if(i-N/i<0) { break; } if(i-N/i<m-n) { m=i; n=N/i; } } } matrix=(int **)malloc(m*sizeof(int *)); for(i=0;i<m;i++) { matrix[i]=(int *)calloc(n,sizeof(int)); } while(count<N) { move(count); count++; } for(i=0;i<m;i++) { for(j=0;j<n-1;j++) { printf("%d ",matrix[i][j]); } printf("%d\n",matrix[i][j]); } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看