对任意一个二维数组中的每一行排成由大到小的形式,并分别求对角线和次对角线上的元素之和.
參考答案:我现在只写一个函数好么?如果你满意就把分给我吧.
void fun(int b[][],int n,int m)//n 为行m为列;
{
int s1=0,s2=0,i,j,k,temp;
for(i=0;i<n;i++)
{s1+=b[i][i];
s2+=b[i][n-1-i];
for(j =0;j<m-1;j++)//扫描一遍
for(k=j+1;k<m;k++)
{
if(b[i][j]>b[i][k])
{temp=b[i][j];
b[i][j]=b[i][k];
b[i][k]=b[i][j];
}
}
}
for(i=0;i<n;i++)// 显示排序后的数组
{for(j =0;j<m-1;j++)
cout<<b[i][j]<<',';
cout<<endl;
}
cout<<" 对角线的和为"<<s1<<endl;
cout<<" 次对角线的和为"<<s2<<endl;
return;
}