第九次

1.定义函数实现:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩,最后按照成绩从高到低排序后输出。(至少七个函数。输入函数、平均值函数、最大值下标函数、最小值下标函数,查找函数,排序函数,输出函数)

#include<stdio.h>
#define N 1000
int readScore(int score[]);
double average(int score[],int i);
int findMax(int score[],int i);
int findMin(int score[],int i);
int findMaxIndex(int score[],int i);
int findMinIndex(int score[],int i);
int search(int score[],int i,int x);
void bubbleSort(int score[],int i);
void printfScore(int score[],int i);
int main()
{
	int max,min,score[N]={0},a,b,c,i,x,m,n;
	double ave;
	readScore(score);
	ave=average(score,i);
	printf("平均分为%.2f\n",ave);
	max=findMax(score,i);
	min=findMin(score,i);
	printf("最高分为%d,最低分为%d",max,min);
	a=findMaxIndex(score,i);
	b=findMinIndex(score,i);
	printf("最高分是第%d个学生,最低分是第%d个学生\n",a,b);
	c=search(score,i,x);
	printf("这是第%d个学生\n",c+1);
	bubbleSort(score,n);
	printfScore(score,i);
    return 0;
}
int readScore(int score[])
{
	int i=0;
	printf("请输入成绩\n");
	while(1)
	{
		scanf("%d",&score[i]);
		if(score[i]<0)
		{
			break;
		}
		i++;
	}
	return i;
}
double average(int score[],int i)
{
	i=0;
	int sum=0;
	while(score[i]>=0)
	{
		sum=sum+score[i];
		i++;
	}
	return (double)sum/i;
}
int findMax(int score[],int i)
{
	i=0;
	int max;
	max=score[0];
	while(score[i]>=0)
	{
		if(score[i]>max)
		{
			max=score[i];
		}
		i++;
	}
	return max;
}
int findMin(int score[],int i)
{
	i=0;
	int min;
	min=score[0];
	while(score[i]>=0)
	{
		if(score[i]<min)
		{
			min=score[i];
		}
		i++;
	}
	return min;
}
int findMaxIndex(int score[],int i)
{
	i=0;
	int maxIndex;
	maxIndex=0;
	while(score[i]>=0)
	{
		if(score[i]==findMax(score,i))
		{
			maxIndex=i+1;
		}
		i++;
	}
	return maxIndex;
}
int findMinIndex(int score[],int i)
{
	i=0;
	int minIndex;
	minIndex=0;
	while(score[i]>=0)
	{
		if(score[i]==findMin(score,i))
		{
			minIndex=i+1;
		}
		i++;
	}
	return minIndex;
}
int search(int score[],int i,int x)
{
	printf("请输入学生成绩\n");
	scanf("%d",&x);
	i=0;
	while(score[i]>=0)
	{
		if(score[i]==x)
		{
			return i;
		}
		i++;
	}
	return -1;
}
void bubbleSort(int score[],int n)
{
	int i,j,t,flag;
	i=0;
    while(1)
    {
    	if(score[i]<0)
    	{
    		break;
		}
    	i++;
	}
	n=i;
	for(i=0;i<n-1;i++)
	{
	    flag=0;
        for(j=0;j<n-1-i;j++)
	    {
            if(score[j+1]>score[j])
            {
			    t=score[j];
		        score[j]=score[j+1];
		        score[j+1]=t;
		        flag=1;
	        }
	    }
	    if(flag==0)
	    {
		    break;
	    }
    }
}
void printfScore(int score[],int i)
{
	i=0;
	while(score[i]>=0)
	{
		printf("%5d",score[i]);
		i++;
	}
	printf("\n");
}

  

2.定义长度为100的整型数组,将数组元素赋初值为1,2……100,将其中所有值为3或7倍数的值删除,最后打印输出数组中剩余数的个数及每个数。

#include<stdio.h>
#define N 100
int main()
{
    int i,num[N],x=1,a=0;
	for(i=0;i<N;i++)
	{
		num[i]=x;
		x++;
	}
	for(i=0;i<N;i++)
	{
		if(num[i]%3==0||num[i]%7==0)
		{
			num[i]=0;
		}
	}
	for(i=0;i<N;i++)
	{
	    if(num[i]!=0)
		{
			printf("%4d",num[i]);
			a++;
			if(a%10==0)
		    {
		        printf("\n");
	    	}
		}
	}
	printf("数组中剩余%d个数\n",a);
	return 0;
}

  

实验总结

1.定义数组和在数组中移动变量时要注意数组的越界问题

2.定义函数时,有返回值的用int型,无返回值的用void

3.冒泡排序法是将两个相邻的数比较小的排到前面

4.函数只能有一个返回值

程序分析

程序1

#include <stdio.h>
void swap(int x[]);
int main()
{
     int a[2]={1,2};
    swap(a);
    printf("a[0]=%d\na[1]=%d\n",a[0],a[1]);
    return 0;
}
void swap(int x[])
{
    int z;
    z=x[0];
    x[0]=x[1];
    x[1]=z;
}

程序2

#include <stdio.h>
void swap(int x,int y);
int main()
{
    int a[2]={1,2};
    swap(a[0],a[1]);
    printf("a[0]=%d\na[1]=%d\n",a[0],a[1]);
    return 0;
}
void swap(int x,int y)
{
     int z;
     z=x;
     x=y;
     y=z;
}

程序一的a[0和a[1]的值交换了,程序二没有改变。原因是简单变量做参数,实现的是值的单向传递,不会影响实参的值,数组做函数参数,是将实参数组的地址传给形参数组。

时间: 2025-02-01 04:08:49

第九次的相关文章

Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memc

基于案例SQL优化第九课作业分享

默认统计信息收集: 1. 11g默认启动了统计信息收集的任务,默认运行时间是周一到周五晚上10点和周6,周天的早上6点 2. 你也可以关闭自动统计新收集任务,选择手工收集的方式,但是一般不建议这样操作. 动态统计信息: 1. 统计信息默认情况下是每天晚上10点半后收集,如果新建对象还没来得级收集统计信息,就采用动态采样的方式. 2. 具体在set autotrace 跟踪的执行计划中,可以看到类似:- dynamic sampling used for this statement (level

[免费赠票] 第九届中国云计算大会日程曝光

第九届中国云计算大会将于2017年6月14-16日在北京国家会议中心如期举行."架构师技术联盟"自媒体再度与主办方合作,给读者们带来了免费赠票福利,机会难得.赠完即止(点击原文链接申请),也算是给粉丝们的一点回馈.九个春秋,中国云计算大会已经成为中国最大规模.最具影响力的云计算技术.产业和应用的年度盛会,也是国内外云计算.大数据领域最具权威性的高端会议. 云的世界变换莫测,就在本月AWS和RedHat建立战略联盟,RedHat在OpenShift容器平台支持部署AWS服务.未来是多云时

第九周

第九周 1. 1.1负载电感 0mH       触发角π/4: 1.2 负载电感 0mH       触发角π/2: 1.3 负载电感 0.05mH       触发角π/4: 2. 2.1 负载电感 0mH       触发角π/4: 2.2 负载电感 0mH       触发角π/2: 2.3 负载电感 0.1mH       触发角π/4:

javascript高级程序设计 第九章-- 客户端检测

javascript高级程序设计 第九章-- 客户端检测 客户端检测是javascript开发中最具争议的一个话题,由于浏览器间存在差别,通常需要根据不同浏览器的能力分别编写不同的代码.有下列常使用的客户端检测方法:能力检测:在编写代码之前先检测特定浏览器的能力.例如,脚本在调用某个函数之前,可能要先检测该函数是否存在.这种检测方法将开发人员从考虑具体的浏览器类型和版本中解放出来,让他们把注意力集中到相应的能力是否存在上.能力检测无法精确地检测特定的浏览器和版本.怪癖检测:怪癖实际上是浏览器中存

第九周 psp

团队项目PSP 一:表格     C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论用户界面 9:50 12:45 35 45 80 分析与设计 设计网页界面 13:50 17:40 25 175 270 编码 具体编码 8:40 22:30 810 170 340 调试运行 修改代码.代码复审 18:10 22:50 50 115 90 总结 总结结果 22:55 23:10 0 40 15 二:饼图 三:进度条 进度条 第九周 累计

zabbix专题:第九章 自定义key(案例:监控内存,监控nginx状态)

第九章 自定义key 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 为什么要自定义KEY 有时候我们想让被监控端执行一个zabbix没有预定义的检测,zabbix的用户自定义参数功能提供了这个方法.我们可以在客户端配置文件zabbix_angentd.conf里面配置UserParameter. 语法如下: UserParameter=key,command 用户自定义参数包含一个key和一个命令,ke

Linux...第九章作业

<<<第九单元练习>>> 1.在desktop主机中建立用户westos,并设定其密码为westoslinux 2.配置desktop中的sshd服务要求如下: *)设定sshd服务只允许westos用户可以被访问使用 *)创建westos用户的key认证方式 *)设定westos用户只允许使用key认证方式,屏蔽其系统密码认证方式 实验过程如下: 在服务器端的虚拟机下,创建用户westos 并设置密码 添加用户白名单, #vim /etc/ssh/sshd_confi

第九单元练习题

<<<第九单元练习>>> 1.在desktop主机中建立用户westos,并设定其密码为westoslinux 2.配置desktop中的sshd服务要求如下: *)设定sshd服务只允许westos用户可以被访问使用 *)创建westos用户的key认证方式 *)设定westos用户只允许使用key认证方式,屏蔽其系统密码认证方式

读书笔记第九章

第九章HAL是建立在linux驱动之上的一套程序库.这套程序库并不属于linux内核,而是属于linux内核层之上的应用层.可以用来保护不想公开源代码的作者.HAL架构比较简单,其基本原理就是在安卓系统中使用程序库调用位于内核空间的linux驱动,然后安卓应用程序可以通过NDK程序访问HAL中的程序库,或直接在安卓应用程序中访问HAL中的程序库.编写一款支持HAL的linux驱动程序的步骤:1.编写linux驱动,linux驱动的代码要尽量简介,尽可能将业务逻辑放到HAL library中.2.