第1个回答 推荐于2017-09-01
选择法:
#include<stdio.h>
#define N 5
#define M 4
void main()
{
int x,i,j,k,t,a[M][N];
float sum=0.0,avg[M];
//输入数组:
for(x=0;x<M;x++)
for(i=0;i<N;i++)
scanf("%d",&a[x][i]);
//数组排序:
for(x=0;x<M;x++)
{
for(i=0;i<N;i++)
{
k=i;
for(j=i+1;j<N;j++)
if(a[x][j]>a[x][k])
k=j;
if(k!=i)
{
t=a[x][i];
a[x][i]=a[x][k];
a[x][k]=t;
}
}
}
for(x=0;x<M;x++)
{
sum=0.0;
for(i=0;i<N;i++)
{
printf("%d ",a[x][i]);
sun+=a[x][i];
}
avg[x]=sum/N;
printf("\n");
}
}本回答被提问者和网友采纳
第2个回答 2013-01-26
void sort(int num[5])
{
for(int i=0;i<5;i++) //bubble sort
{
for(int j=4;j>=i;j--)
{
if(num[j-1] < num[j]) //swap num[j-1],num[j]
{
int temp = num[j-1];
num[j-1] = num[j];
num[j] = temp;
}
}
}
int getAvg(int num[5])
{
int sum = 0;
for(int i=0;i<5;i++) sum+=num[i];
}
int main()
{
int num[4][5];
for(int i=0;i<4;i++) {sort(num[i]);printf("Avg of Row %d=%d\n",i,getAvg(num[i]);}
return 0;
}
第3个回答 2013-01-26
#include "stdio.h"
void main()
{
int a[3][3]=
{
{10,11,12},
{13,18,10},
{20,17,19}
};
int i,j,k; /*循环计数器*/
int *p[3][3]=
{
{NULL},
{NULL},
{NULL}
};
int temp;
for(i=0;i<3;++i) /*指向各个数元素*/
{
for(j=0;j<3;++j)
{
p[i][j]=a[i]+j;
}
}
for(i=0;i<3;++i) /*排序*/
{
for(j=0;j<2;++j)
{
for(k=0;k<2;++k)
{
if(*p[i][k]>*p[i][k+1])
{
temp=*p[i][k];
*p[i][k]=*p[i][k+1];
*p[i][k+1]=temp;
}
}
}
}
for(i=0;i<3;++i) /*输出*/
{
for(j=0;j<3;++j)
{
printf("%d ",*p[i][j]);
}
printf("\n");
}
getch();
}