![]() |
#2
凌云飞翔2012-11-28 12:17
求的是每行的平均数和每列的平均数,不知道是不是这意思,帮你改了一下,看一下吧,有疑惑事在讨论 ![]() #include <stdio.h> void fun1(int (*ss)[5],float *b) { int i,j,sum=0; for(i=0;i<10;i++) for(j=0;j<5;j++) { sum=sum+ss[i][j]; if(j==4) { b[i]=(float)sum/5; sum=0 ; } } } void fun2 (int (*ss)[5],float *b) { int i,j,sum=0; for(j=0;j<5;j++) for(i=0;i<10;i++) { sum=sum+ss[i][j]; if(i==9) { b[j]=(float)sum/10; sum=0 ; } } } void max (int (*ss)[5]) { int max ,i,j,h,l,m=0,n=0; for(i=0;i<10;i++) for(j=0;j<5;j++) if(ss[m][n]<ss[i][j]) { m=i ; n=j ; } printf("max=%d,行:%d,列:%d\n",ss[m][n],m+1,n+1); } main() { int i,j,ss[10][5]; float average1[10] ,average2[5] ; printf("请输入50个数据:\n"); for(i=0;i<10;i++) for(j=0;j<5;j++) scanf("%d",&ss[i][j]); printf ("输出为:\n") ; for(i=0;i<10;i++) { for(j=0;j<5;j++) printf ("%5d",ss[i][j]) ; printf ("\n") ; } fun1 (ss,average1) ; printf("输出每行平均数:\n") ; for (i=0;i<10;i++) { printf ("%d : %f ", i+1, average1[i] ) ; printf ("\n") ; } fun2(ss,average2); printf("输出每列平均数:\n") ; for (i=0;i<5;i++) { printf ("%d : %f ", i+1, average2[i] ) ; printf ("\n") ; } max(ss); } |
#include<stdio.h>
float average1(int ss)
{
int i,j,sum=0;
int b[10];
for(i=0;i<10;i++)
for(j=0;j<5;j++)
{
sum=sum+ss[i][j];
if(j==5)
ss[i]=sum/5;
break;
}
return b;//返回数组
}
float average2 (int ss)
{
int i,j,sum=0;
int ss[10];
for(j=0;j<5;j++)
{
for(i=0;i<10;i++)
{
sum=sum+ss[i][j];
if(i==10)
b[j]=sum/10;
break;
}
}
return b;//返回数组
}
int max(int ss)
{
int max,i,j;
max=ss[0][0];
for(i=0;i<10;i++)
for(j=0;j<5;j++)
{
if(max<ss[i][j])
{
t=max;
max=ss[i][j];
ss[i][j]=t;
}
}
h=i+1;
l=j+1;
printf("max=%d,%d,%d",max,h,l);
}
int main()
{
int i,j;
int ss[10][5];
printf("input the array\n");
for(i=0;i<10;i++)
for(j=0;j<5;j++)
scanf("%d",&ss[i][j]);
average1=average1();
average2=average2();
max=max();
printf("%d\n,%d\n,%d\n",avera1,average2,max);
return 0;
}