#include <stdio.h>
void total(int *a,int sum[],float aver[],int m,int n);
void print(int *a,int sum[],float aver[],int m,int n);
int main()
{
int i,j,m,n,a[30][5],sum[30];
float aver[30];
printf("how many student?");
scanf("%d",&m);
printf("how many courses?");
scanf("%d",&n);
printf("input scores:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
total(*a,sum,aver,m,n);
print(*a,sum,aver,m,n);
return 0;
}
void total(int *a,int sum[],float aver[],int m,int n)
{
int i,j;
for(i=0;i<m;i++)
{
sum[i]=0;
for(j=0;j<n;j++)
sum[i]=sum[i]+a[i*n+j];
aver[i]=(float)sum[i]/n;
}
}
void print(int *a,int sum[],float aver[],int m,int n)
{
int i,j;
printf("result:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%4d\t",a[i*n+j]);
printf("5d\t%6.1f\n",sum[i],aver[i]);
}
}
二维数组不能这么传递和访问,还是改为全局变量吧
#include <stdio.h>
void total(int sum[],float aver[]);
void print(int sum[],float aver[]);
int m,n,a[30][5];
int main()
{
int i,j,sum[30];
float aver[30];
printf("how many student?");
scanf("%d",&m);
printf("how many courses?");
scanf("%d",&n);
printf("input scores:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
total(sum,aver);
print(sum,aver);
return 0;
}
void total(int sum[],float aver[])
{
int i,j;
for(i=0;i<m;i++)
{
sum[i]=0;
for(j=0;j<n;j++)
sum[i]=sum[i]+a[i][j];
aver[i]=(float)sum[i]/n;
}
}
void print(int sum[],float aver[])
{
int i,j;
printf("result:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%4d\t",a[i][j]);
printf("%5d\t%6.1f\n",sum[i],aver[i]);
}
}
输出的结果是什么,预期结果又是什么
二维数组不能这么传递和访问,还是改为全局变量吧
#include <stdio.h>
void total(int sum[],float aver[]);
void print(int sum[],float aver[]);
int m,n,a[30][5];
int main()
{
int i,j,sum[30];
float aver[30];
printf("how many student?");
scanf("%d",&m);
printf("how many courses?");
scanf("%d",&n);
printf("input scores:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
total(sum,aver);
print(sum,aver);
return 0;
}
void total(int sum[],float aver[])
{
int i,j;
for(i=0;i<m;i++)
{
sum[i]=0;
for(j=0;j<n;j++)
sum[i]=sum[i]+a[i][j];
aver[i]=(float)sum[i]/n;
}
}
void print(int sum[],float aver[])
{
int i,j;
printf("result:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%4d\t",a[i][j]);
printf("%5d\t%6.1f\n",sum[i],aver[i]);
}
}