第四周《C语言及程序设计》实践项目22 用指针法访问数组元素
来源:互联网 发布:网络分线器怎么用 编辑:程序博客网 时间:2024/05/29 17:07
【项目1-翻转数组】
/* * Copyright (c) 2016, CSDN学院 * All rights reserved. * 文件名称:【项目1-翻转数组】.cpp * 作 者:张易安 * 完成日期:2016年 9 月 8 日 * 版 本 号:v1.0 * * 问题描述:下面的程序的输出为10 9 8 7 6 5 4 3 2 1。也就是说,调用reverse(b,10);后,b数组中的元素正好“翻转”过来了。请定义reverse函数,实现这个功能。 */ #include<stdio.h>void reverse(int a[],int n);int main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i;reverse(b,10);for(i=0;i<10;i++){printf("%d\t",b[i]);}return 0; } void reverse(int a[],int n) { int t,i; for(i=0;i<n/2;i++)//看的算法就头疼!有时间再看看 { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; } }运行结果
【项目2 - 成绩处理函数版】
/* * Copyright (c) 2016, CSDN学院 * All rights reserved. * 文件名称:【项目2 - 成绩处理函数版】.cpp * 作 者:张易安 * 完成日期:2016年 9 月 8 日 * 版 本 号:v1.0 * * 问题描述: 在数组score中将要存储了某小组C程序设计的成绩,请设计实现下面的各功能函数,并在main函数中调用,组合成一个完整的应用:(1)输入小组人数及成绩,要保证成绩在0-100之间;(2)输出该小组的最高成绩、最低成绩、平均成绩;(3)输出考得最高成绩和最低成绩的同学的人数;(4)输出考得最高成绩和最低成绩的同学的学号(设数组下标即学号,可能有相同的成绩)。(5)求出所有同学成绩的标准偏差,标准偏差公式为,其中为样本(即某同学成绩),为均值(前面已经求出),为样本数目; */#include<stdio.h>#include<math.h>void input_score(int s[],int n);int get_max_score(int s[],int n);int get_min_score(int s[],int n);double get_avg_score(int s[],int n);double get_stdev_score(int s[],int n);int count(int x,int s[],int n);void output_index(int x,int s[],int n);int main(){int score[50];int num;int max_score,min_score;printf("小组有多少名同学?");scanf("%d",&num);printf("请输入学生成绩:\n");input_score(score,num);max_score=get_max_score(score,num);printf("最高成绩为: %d,共有 %d人\n",max_score,count(max_score,score,num));min_score=get_min_score(score,num);printf("最低成绩为: %d,共有 %d人\n",min_score,count(max_score,score,num));printf("平均成绩为: %.2f\n",get_avg_score(score,num));printf("标准偏差为: %.2f\n",get_stdev_score(score,num));printf("获最高成绩的学生(学号)有:");output_index(min_score,score,num);printf("\n");return 0; } /*input_score函数的功能是输入小组的成员成绩入口参数: s-存放成绩的数组n—学生人数返回值:无*/void input_score(int s[],int n){int i;for(i=1;i<=n;i++) do {printf("请输入第%d 位同学的成绩:",i);scanf("%d",&s[i]); } while(s[i]<0||s[i]>100); return; } /*get_max_score函数的功能是求出最大成绩输入参数: s-存放成绩的数组n-学生成绩返回值:max*/int get_max_score(int s[],int n){int i,max;max=-1;for(i=1;i<=n;i++){if(max<s[i]) max=s[i];}return max; } /*get_min_score函数的功能是输出最小成绩输入参数: s-存放成绩的数组 n-学生成绩 返回值:min*/int get_min_score(int s[],int n){int i,min;min=999;for(i=1;i<=n;i++){if(min>s[i]){min=s[i];}}return min; } /*get_avg_score函数的功能是求出平均数输出参数: s-存放成绩的数组 n-学生成绩返回值:平均数 */double get_avg_score(int s[],int n){int i;double avg,sum;sum=0;for(i=1;i<=n;i++){sum+=s[i];}avg=sum/n;return avg;} /* get_stdev_score函数的功能是求出num同学的标准偏差 入口参数: s-存放成绩的数组n-学生人数返回值:标准偏差 */double get_stdev_score(int s[],int n){double sum=0,avg,x;int i;avg=get_avg_score(s,n);//这为什么不可以写成score(s[],n)呢?那个返回值还有些没有完全搞懂,这个函数的运用也是 for(i=1;i<=n;i++){x=s[i]-avg;sum+=x*x;}return sqrt(sum/(n-1)); } /*count函数的功能是返回值s数组中为m的元素的个数入口参数: m-要查找计数的值 s-存放成绩的数组 n-学生人数返回值:m出现的数目*/int count(int m,int s[],int n){int icount=0;int i;for(i=1;i<=n;i++){if(s[i]==m) icount++;}return icount; } /*output_index函数的功能是输出数组中值为m的元素的下标入口参数: m-要找的值 s-存放成绩的数组 n-学生人数返回值:无*/void output_index(int m,int s[],int n){int i;for(i=1;i<=n;i++){if(s[i]==m) printf("%d",i);}return; }运行结果
心得
头一次写快200行的代码,感觉就是一个字:爽!
0 0
- 第四周《C语言及程序设计》实践项目22 用指针法访问数组元素
- 第6周 C语言及程序设计提高例程-22 用指针法访问数组元素
- C语言及程序设计提高例程-22 用指针法访问数组元素
- 第四周《C语言及程序设计》实践项目7 返回指针的函数
- 第四周《C语言及程序设计》实践项目16 数组的引入
- 第四周《C语言及程序设计》实践项目32 二维数组及其定义
- 第四周《C语言及程序设计》实践项目37 操作字符串数组
- 第四周《C语言及程序设计》实践项目2 模块化程序设计及C语言中的函数
- 第14周 《C语言及程序设计》实践项目——数组与指针
- 第四周《C语言及程序设计》实践项目39 动态存储管理与动态数组的实现
- 第四周《C语言及程序设计》实践项目39 问题求解——求素数
- 第四周《C语言及程序设计》实践项目40 问题求解方法——穷举
- 第四周《C语言及程序设计》实践项目43 从文本文件中读入数据
- 第四周《C语言及程序设计》实践项目20 经典:查找的艺术
- 第四周《C语言及程序设计》实践项目26 实现线性表基本操作的函数
- 第四周《C语言及程序设计》实践项目5 认识递归
- 第四周《C语言及程序设计》实践项目11 体验结构体
- 第四周《C语言及程序设计》实践项目14 开发一个电子词典
- mysql主从复制原理
- 第二周-项目1C/C++语言中函数参数传递的三种方式
- LCA+RMQ求树中两点距离
- POJ 2112 Optimal Milking 网络流初步
- Spark shuffle 优化
- 第四周《C语言及程序设计》实践项目22 用指针法访问数组元素
- 工作一年两个月了~
- MATLAB矩阵压缩函数squeeze
- Android剪切板(ClipboardManager) 复制文本
- light oj 1013 迷之ac...我不知道为什么不re
- Android实现Filterable通过输入文本框实现联系人自动筛选
- Centos安装python3.5.x和ipython
- DA14580 --- 广播开始分析
- cmd命令行能运行java,不能运行javac