求一个5行3列二维数组每行元素的和,并将求出的和按由小到大的次序排序后输出

求具体能够运行的程序
2025-04-13 18:53:59
推荐回答(3个)
回答1:

using namespace std;
void main()
{
double a[5][3]=,,,,};
for(int i=0;i<5;i++)
{
for(int j=1;j<3;j++)
a[i][0]+=a[i][j];
a[i][1]=i;
}
for(i=0;i<5;i++)
{
int k=i;
for(int j=i+1;j<5;j++)
if(a[k][0]>a[j][0])
k=j;
int temp=a[k][0];
int row=a[k][1];
a[k][0]=a[i][0];
a[k][1]=a[i][1];
a[i][0]=temp;
a[i][1]=row;

}
for(i=0;i<5;i++)
cout<<"第"<}
我这种算法既节省时间又节省空间。我是这样实现的:将每行从第二个元素开始全部和第一个元素相加。然后排序时每行第一个元素从小到大记录和,而第二个元素则记录该和属于某行。///刚才有点问题,现在改了

回答2:

//求一个5行3列二维数组每行元素的和,并将求出的和按由小到大的次序排序后输出
#include
void main()
{
double array[5][3]=
{
{1,2,2},
{3,1,1},
{5,63,2},
{33,22,1},
{12,22,1}
};
double sum[5]={0,0,0,0,0};
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<3;j++)
{
sum[i]+=array[i][j];
}
}
double temp;
for(i=0;i<4;i++)
{
for(j=i+1;j<5;j++)
{
if(sum[i]>sum[j])
{
temp=sum[i];
sum[i]=sum[j];
sum[j]=temp;
}
}
}
//print
for(i=0;i<5;i++)
cout< cout<}

回答3:

绝对可以运行的:
#include
main()
{ int i,j,temp;
int b[5],aa[5][3]={{34,1,34},{34,45,67},{43,4,5},{43,5,6},{34,6,76}};
for(i=0;i<5;i++) /*求和*/
for(j=0;j<3;j++)
b[i]+=aa[i][j];
for(i=0;i<4;i++) /*排序*/
for(j=i+1;j<5;j++)
if(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}
for(i=0;i<5;i++)printf("%d",b[i]); /*输出*/

}