(要求使用指针方法)一个班有四名学生,五门课。(1)求第一门课的平均分;(2)找出有两门以上课不及格的学生,输出他们的学号、全部课程成绩和平均成绩;(3)找出平均成绩在90分以上或全部课程成绩均在85
2015-05-29 14:31
916 查看
(3)找出平均成绩在90分以上或全部课程成绩均在85分以上的学生。分别编写3个函数实现以上3个功能。
#include<stdio.h>
#include<stdlib.h>
void aver1(float *b)
{
int i,j;
float s=0;
for(i=0;i<4;i++)
{ s=s+*(b+j);
j=j+5;}
printf("%f\n",s/4);
}
void excellent(float (*b)[5])
{
int n[27]={0},x[27]={0};
int i,j=0,k,h=0,f=0;
float w;
for(i=0;i<4;i++)
{h=0,f=0;w=0;
for(k=0;k<5;k++)
{ w=w+*(*(b+i)+k);
if(*(*(b+i)+k)>=85)
h++;
if(h>=5)
printf("da yu ba shi wu student %d\n ",i);
}
if((w/5)>=90)
printf("da yu jiu shi student %d\n",i);
}
}
void fail(float (*b)[5])
{
int n[27],x[27];
int i,j=0,k,h=0;
float w;
for(i=0;i<4;i++)
{n[j++]=0;
for(k=0;k<5;k++)
if(*(*(b+i)+k)<60.0)
{
n[j]++;
if(n[j]>=2)
{ x[h]=i;
h++;
break;}
}}
for(i=0;i<h;i++)
{printf("%d ",x[i]);
w=0;
for(k=0;k<5;k++)
{
printf("%.2f\t ",*(*(b+x[i])+k));
w=w+*(*(b+x[i])+k);
}
printf("%.3f\n",w/5);
}
}
main()
{
float a[4][5];
int i,j,k,b,n;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%f",&a[i][j]);
aver1(*a);
fail(a);
excellent(a);
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
void aver1(float *b)
{
int i,j;
float s=0;
for(i=0;i<4;i++)
{ s=s+*(b+j);
j=j+5;}
printf("%f\n",s/4);
}
void excellent(float (*b)[5])
{
int n[27]={0},x[27]={0};
int i,j=0,k,h=0,f=0;
float w;
for(i=0;i<4;i++)
{h=0,f=0;w=0;
for(k=0;k<5;k++)
{ w=w+*(*(b+i)+k);
if(*(*(b+i)+k)>=85)
h++;
if(h>=5)
printf("da yu ba shi wu student %d\n ",i);
}
if((w/5)>=90)
printf("da yu jiu shi student %d\n",i);
}
}
void fail(float (*b)[5])
{
int n[27],x[27];
int i,j=0,k,h=0;
float w;
for(i=0;i<4;i++)
{n[j++]=0;
for(k=0;k<5;k++)
if(*(*(b+i)+k)<60.0)
{
n[j]++;
if(n[j]>=2)
{ x[h]=i;
h++;
break;}
}}
for(i=0;i<h;i++)
{printf("%d ",x[i]);
w=0;
for(k=0;k<5;k++)
{
printf("%.2f\t ",*(*(b+x[i])+k));
w=w+*(*(b+x[i])+k);
}
printf("%.3f\n",w/5);
}
}
main()
{
float a[4][5];
int i,j,k,b,n;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%f",&a[i][j]);
aver1(*a);
fail(a);
excellent(a);
system("pause");
return 0;
}
相关文章推荐
- NOI 2005 题解
- linux C学习笔记05--信号量与共享内存(进程同步)
- Oracle教程:如何诊断节点重启问题(转载)
- VMware8虚拟机的使用
- 数学之美札记:统计语言模型
- CSS介绍
- linux软件的安装,更新与卸载
- Windows环境下Android NDK环境搭建
- assert()函数用法总结
- iOS之默认搜索UISearchDisplayController
- oracle 10g sql tuning advisor 手工执行
- mysql查询今天、昨天、7天、近30天、本月、上一月 数据
- Codeforces Round #305 (Div. 1)E. Mike and Friends 后缀数组+RMQ+线段树
- I/O流技术
- springAOP
- think in uml1
- 2015深圳白石洲科目三 西考场
- 【Android】Android单例模式及使用单例模式实现自己的HttpClient工具类
- UVA 12549 Sentry Robots 最小点集覆盖
- 在Android中访问内置SE和基于SE的卡模拟(一)