?? 題目90序列重排.txt
字號:
題目90:下列程序的功能是:將一正整數序列{K1,K2,...,K9}重新排列成一個新的序列。新序列中,比K1小的數都在K1的左面(后繼的再向U左存放),比K1大的數都在K1的右面(后續的再向右存放),從k1想右掃描。要求編寫函數jsvalue()實現此功能,最后調用writeDat()函數所新序列輸出到文件out.dat中。
說明:在程序中已給出了10個序列,每個序列有9個正整數,并存入數組a[10][9]中,分別求出這10個新序列。
例:序列{6,8,9,1,2,5,4,7,3}
經重排后成為{3,4,5,2,1,6,8,9,7}
注意:部分源程序已給出。
請勿改動主函數main()和寫函數writeDat()的內容。
--------------------
jsValue(int a[10][9]) /*標準答案*/
{int value,I,j,k,num;
for(I=0;I<10;I++)
{value=a[I][0];
for(j=0;j<9;j++)
if (a[I][j]<value)
{num=a[I][j];
for(k=j;k>0;k--)
{num=a[I][j];
for(k=j;k>0;k--)
a[I][k]=a[I][k-1];
a[I][0]=num; }
}}
}
或者:
jsvalue(int a[10][9])
{ int i,j,k,m,c,b[10][9];
for(i=0;i<10;i++)
for(j=0;j<9;j++)
b[i][j]=a[i][j];
for(i=0;i<10;i++)
{ k=b[i][0];
for(j=1;j<9;j++)
if(b[i][j]<k)
{ c=b[i][j];
for(m=j;m>0;m--)
a[i][m]=a[i][m-1];
a[i][0]=c; } }
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -