(要求使用指针方法)一个班有四名学生,五门课。(1)求第一门课的平均分;(2)找出有两门以上课不及格的学生,输出他们的学号、全部课程成绩和平均成绩;(3)找出平均成绩在90分以上或全部课程成绩均在85

(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;

}

时间: 2024-10-11 02:44:42

(要求使用指针方法)一个班有四名学生,五门课。(1)求第一门课的平均分;(2)找出有两门以上课不及格的学生,输出他们的学号、全部课程成绩和平均成绩;(3)找出平均成绩在90分以上或全部课程成绩均在85的相关文章

马哥2016全新Linux+Python高端运维班第四期-第五次作业

1.写一个脚本,完成如下功能 (1) 传递一个磁盘设备文件路径给脚本,判断此设备是否存在: (2) 如果存在,则显示此设备上的所有分区信息: [[email protected] ~]# vi week5-01.sh[[email protected]moban ~]# cat week5-01.sh#!/bin/bash#author:Wangyafei#read -p "Please enter a disk device path:" path while [ -z"$

一个全等四宫格实现的多种方法

方法一:用float方法实现 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>一个全等四宫格的实现</title> <style> .parent{ background-color:#fff; width: 500px; height: 400px; margin-left: -10px; margin-top: -10px;

给定链表的头指针和一个结点指针,在O(1)时间删除该结点

题目:给定链表的头指针和一个结点指针,在O(1)时间删除该结点. 具体思路:把头结点的数据直接copy到要删除的结点处,然后头指针向后移动一个结点,再free掉原来的头指针指向的结点,这样等于把要删除的结点删除了.当链表只有一个结点或者要删除的结点是头结点或尾结点时,这种方法也是成立的,所以不需要做特殊的处理.假设链表总共有n个结点,我们的算法在n-1总情况下时间复杂度是O(1),只有当给定的结点处于链表末尾的时候,时间复杂度为O(n).那么平均时间复杂度[(n-1)*O(1)+O(n)]/n,

Objective-C(十六、内存管理,自动释放池,ARC,强指针,弱指针,方法族)——iOS开发基础

结合之前的学习笔记以及参考<Objective-C编程全解(第三版)>,对Objective-C知识点进行梳理总结.知识点一直在变,只是作为参考,以苹果官方文档为准~ 十六.内存管理相关知识(二) 1.autorelease,自动释放机制 - (instancetype)autorelease; (1)自动释放池的创建 iOS5.0之前 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //进行一系列操作 //此处不可以使用

C#中方法的参数的四种类型

C#中方法的参数有四种类型: 1. 值参数类型  (不加任何修饰符,是默认的类型) 2. 引用型参数  (以ref 修饰符声明) 3. 输出型参数  (以out 修饰符声明) 4. 数组型参数  (以params 修饰符声明) =================================================== 1. 值传递: 值类型是方法默认的参数类型,采用的是值拷贝的方式.也就是说,如果使用的是值类型,则可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值.使用

指针方法完成字符串的复制

//指针方法完成字符串的复制 #include<stdio.h> void main() { void copy_string(char *from,char *to); char *fro,*t; char a[]="I am a teacher."; char b[]="You are a student."; printf("a=%s\nb=%s\n",a,b); fro=a;t=b; printf("\ncopy s

汇编语言的寻址方式与C语言中的指针是一个东西。

汇编语言的寻址方式与C语言中的指针是类似的! 汇编语言的寻址方式与C语言中的指针:寻找数据的方法. 指针就是存了 变量的地址,寻址方式就是得到保存变量的地址. 当你学了汇编语言,你就知道为什么C语言有函数指针,为什么函数要以return 结尾.为什么main()函数为程序的入口. 给我的感觉就是C语言是汇编语言的进化版本.因为C语言处处都有着汇编语言的影子. 一个小小的建议:先学习汇编语言.自学书籍是 清华大学 王爽的 汇编语言.之后,学习C语言,自学书籍,我还真不好推荐,我用的是C语言入门经典

给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点

#include <iostream> #include <string.h> #include <stdlib.h> #include <stack> using namespace std; struct Node { int data; struct Node* next; }; struct Node* create_list(int len) { if (len <= 0) return NULL; struct Node* head; st

七月算法--12月机器学习在线班-第四次课笔记—凸优化

七月算法--12月机器学习在线班-第四次课笔记—凸优化 七月算法(julyedu.com)12月机器学习在线班学习笔记 http://www.julyedu.com