5x5矩陣調整大小位置!

2021-05-24 05:25:04 字數 1517 閱讀 1753

將乙個5x5的矩陣中最大的元素放在中心,4個角分別放4個最小的元素(順序為從左到右,從上倒下依次從小到大存放),寫一函式實現它!

#include

int main()

return 0;

}void change(int *p)

temp=*(p+12);//將*(p+12)的值儲存到temp;(p+12)是該矩陣的中心元素;序號從0算起;

*(p+12)=*pmax;//將最大值賦值給中心元素;

*pmax=temp;//將儲存的值寫入到*pmax中,此時pmax值等於p+5*i+j;

temp=*p;

*p=*pmin;

*pmin=temp;//將儲存的值寫入到*pmin中,此時pmin值等於p+5*i+j;

pmin=p+1;//*p已經比較過的,不需要在比較所以指標加一!

for(i=0;i<5;i++)

for(j=0;j<5;j++)

if(((p+5*i+j)!=p)&&(*pmin>*(p+5*i+j))) //排除第乙個最小的數的位址指標!比較其他數的最小值!

pmin=p+5*i+j;//不能*pmin=*(p+5*i+j)賦值,在此的意思是指標移動到最小位置;

//*(p+4)=*pmin;

//*pmin=temp;

temp=*pmin;

*pmin=*(p+4);//此時pmin=p+1;此時存放交換的資料;

*(p+4)=temp;

pmin=p+1;//*(p+4)已經比較過的,不需要在比較所以指標加一!

for(i=0;i<5;i++)

for(j=0;j<5;j++)

if(((p+5*i+j)!=p)&&((p+5*i+j)!=(p+4))&&(*pmin>*(p+5*i+j)))

pmin=p+5*i+j;//不能*pmin=*(p+5*i+j)賦值,在此的意思是指標移動到最小位置;

//temp=*(p+20);

//*(p+20)=*pmin;

//*pmin=temp;

temp=*pmin;

*pmin=*(p+20);//此時pmin=p+1;此時存放交換的資料;

*(p+20)=temp;

pmin=p+1;//*(p+20)已經比較過的,不需要在比較所以指標加一!

for(i=0;i<5;i++)

for(j=0;j<5;j++)  

if(((p+5*i+j)!=p)&&((p+5*i+j)!=(p+4))&&((p+5*i+j)!=(p+20))&&(*pmin>*(p+5*i+j)))

pmin=p+5*i+j;//不能*pmin=*(p+5*i+j)賦值,在此的意思是指標移動到最小位置;

//temp=*(p+24);

//*(p+24)=*pmin;

//*pmin=temp;

temp=*pmin;

*pmin=*(p+24);//此時pmin=p+1;此時存放交換的資料;

*(p+24)=temp;

}

5X5矩陣調換!

將乙個5x5矩陣中最大的元素放在中心,4個角分別放4個最小的元素,寫一函式實現之!include int main printf n return 0 void change int p temp p 12 p 12 pmax pmax temp temp p p pmin pmin temp pm...

求5x5階螺旋方陣

實驗題目 求5x5階螺旋方陣 實驗目的 掌握陣列演算法設計 實驗內容 以下是乙個5x5階螺旋方陣。編寫程式,輸出該形式的nxn n 10 階方陣 順時針方向旋進 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 inc...

SQL大賽 5X5方格棋盤難題

盛拓傳媒杯 sql大賽第一期答題,本期題目 5x5方格棋盤難題 在5x5的方格棋盤中 如圖 每行 列 斜線 斜線不僅僅包括對角線 最多可以放兩個球,如何擺放才能放置最多的球,這樣的擺法總共有幾種?輸出所有的擺法。要求 用一句sql實現。輸出格式 從方格棋盤第一行至第5行,每行從第一列到第5列依次輸出...