//标题
//成绩处理
//
//描述
//输入5个学生,4门课成绩,二维数组stu[5][4]表示,行标表示学生,列标表示课程成绩,分别编写函数aver()、fals()和well()完成:
//(1)求第一门课的平均分;(2)统计有2门以上课程不及格的同学人数;
//(3)平均成绩在90分以上或者全部课程成绩在85分以上的同学视为优秀,统计人数,使用指针完成地址传递,主函数完成数组输入和输出。
输入说明
//输入二维浮点型数组stu[5][4]
//
//输出说明
//输出第一门课程平均分(保留1位小数)、2门以上不及格人数和成绩优秀人数,数据之间空一格。
//
//输入样例
//85 73 59 92
//93 95 89 88
//86 88 88 87
//59 51 52 68
//78 32 59 91
//
//输出样例
//80.2 2 2
//
//提示
//注意行列信息。使用指针完成地址传递,主函数完成数组输入和输出。
#include<stdio.h>
#define m 5
#define n 4
float avr1(float *p)
{int i;
float sum=0,re;
for(i=0;i<n;i++)
{
sum=sum+*(p+i);
}
re=sum/n;
return (re);
}
int main()
{ void avr(float a[][n]);
void fals(float a[][n]);
void well(float a[][n]);
float stu[m][n];
int i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{scanf("%f",&stu[i][j]);
}
avr(stu);
fals(stu);
well(stu);
return 0;
}
void avr(float a[][n])
{int i;
float sum=0.0;
for(i=0;i<m;i++)
{sum=sum+a[i][0];
}
printf("%.1f ",sum/5.0);
}
void fals(float a[][n])
{int sum=0,j,count=0,i;
for(i=0;i<m;i++)
{
count=0;
{ for(j=0;j<n;j++)
{if(a[i][j]<60.0)
count ++;
}
if(count>1)
{sum++;
}
}
}
printf("%d ",sum);
}
void well(float a[][n])
{int sum=0,j,count=0,i;
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
{if(a[i][j]>=85)
count ++;
}
if(count==4||avr1(a[i])>90)
{sum++;
// printf("%f\n",avr1(a[i]));
}
count=0;
}
printf("%d",sum);
}
不敢碰指针了,指针数组和数组指针用法和区别还傻傻的分不清。