level 11
左手soul
楼主
#include<stdio.h>
#include<string.h>
struct data
{
long int num;
char name[10];
char sub[10][10];
int subsco[10];
}student[10];
double ave(int *a,int n)
{
int i;
double _ave=0;
for(i=0;i<n;i++)_ave=_ave+(double)(*(a+i))/n;
return _ave;
}
int max(int *a,int n)
{
int i,_max;
for(i=0;i<n;i++)
{
if(a[i]>a[i+1])_max=a[i];
else _max=a[i+1];
}
return _max;
}
int min(int *a,int n)
{
int i,_min;
for(i=0;i<n;i++)_min=(*(a+i))<(*(a+i+1))?(*(a+i)):(*(a+i+1));;
return _min;
}
void main()
{
int i,j,m,n,_max=0,_min=0,a[10][10],b[10];
double _ave;
char c;
for(i=0;i<10;i++)
{
printf("Please enter the data of student %d:\n",i);
printf("student number:");
scanf("%d",&student[i].num);
printf("student name:");
getchar();
gets(student[i].name);
for(j=0;j<10;j++)
{
printf("subject:");
if(j!=0)getchar();
gets(student[i].sub[j]);
printf("The scores of it is:");
scanf("%2d",&student[i].subsco[j]);
printf("\nIs there any other subject?(Please enter Y/N)");
getchar();
c=getchar();
if(c!='Y'&&c!='y')break;
}
printf("The average scores of student %d is:%5.2f",i,ave(student[i].subsco,j+1));
printf("\nAdd more students?(Please enter Y/N)\n");
getchar();
c=getchar();
if(c!='Y'&&c!='y')break;
}
{
n=i+1;
m=j+1;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
a[j][i]=student[i].subsco[j];
}
printf("\nThe average scores of each subject:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)b[j]=a[i][j];
_ave=ave(b,n);
printf("subject:%s\taverage scores:%5.2f\n",student[0].sub[i],_ave);
}
printf("\nThe max scores of each subject:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)b[j]=a[i][j];
_max=max(b,n);
printf("subject:%s\tmax scores:%2d\n",student[0].sub[i],_max);
}
printf("\nThe min scores of each subject:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)b[j]=a[i][j];
_min=min(b,n);
printf("subject:%s\tmin scores:%2d\n",student[0].sub[i],_min);
}
}
}
最后的最大值最小值函数老不对,求大神帮助
2013年11月24日 11点11分
1
#include<string.h>
struct data
{
long int num;
char name[10];
char sub[10][10];
int subsco[10];
}student[10];
double ave(int *a,int n)
{
int i;
double _ave=0;
for(i=0;i<n;i++)_ave=_ave+(double)(*(a+i))/n;
return _ave;
}
int max(int *a,int n)
{
int i,_max;
for(i=0;i<n;i++)
{
if(a[i]>a[i+1])_max=a[i];
else _max=a[i+1];
}
return _max;
}
int min(int *a,int n)
{
int i,_min;
for(i=0;i<n;i++)_min=(*(a+i))<(*(a+i+1))?(*(a+i)):(*(a+i+1));;
return _min;
}
void main()
{
int i,j,m,n,_max=0,_min=0,a[10][10],b[10];
double _ave;
char c;
for(i=0;i<10;i++)
{
printf("Please enter the data of student %d:\n",i);
printf("student number:");
scanf("%d",&student[i].num);
printf("student name:");
getchar();
gets(student[i].name);
for(j=0;j<10;j++)
{
printf("subject:");
if(j!=0)getchar();
gets(student[i].sub[j]);
printf("The scores of it is:");
scanf("%2d",&student[i].subsco[j]);
printf("\nIs there any other subject?(Please enter Y/N)");
getchar();
c=getchar();
if(c!='Y'&&c!='y')break;
}
printf("The average scores of student %d is:%5.2f",i,ave(student[i].subsco,j+1));
printf("\nAdd more students?(Please enter Y/N)\n");
getchar();
c=getchar();
if(c!='Y'&&c!='y')break;
}
{
n=i+1;
m=j+1;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
a[j][i]=student[i].subsco[j];
}
printf("\nThe average scores of each subject:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)b[j]=a[i][j];
_ave=ave(b,n);
printf("subject:%s\taverage scores:%5.2f\n",student[0].sub[i],_ave);
}
printf("\nThe max scores of each subject:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)b[j]=a[i][j];
_max=max(b,n);
printf("subject:%s\tmax scores:%2d\n",student[0].sub[i],_max);
}
printf("\nThe min scores of each subject:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)b[j]=a[i][j];
_min=min(b,n);
printf("subject:%s\tmin scores:%2d\n",student[0].sub[i],_min);
}
}
}
最后的最大值最小值函数老不对,求大神帮助