提高项目26.1-查成绩
来源:互联网 发布:智能手机怎么下载软件 编辑:程序博客网 时间:2024/05/17 09:25
任务和代码:请编程序,输入学号,查找出该同学的成绩。
提示1:可以定义两个int型数组,其中一个n存放学号,另一个s存放成绩,可以保证两个数组中,元素下标相同,对应的是同一位同学。例如n[18]值为3123,s[18]为98,说明学号为3123的同学成绩为98。
提示1:可以定义两个int型数组,其中一个n存放学号,另一个s存放成绩,可以保证两个数组中,元素下标相同,对应的是同一位同学。例如n[18]值为3123,s[18]为98,说明学号为3123的同学成绩为98。
提示2:因为数据无序,运用顺序查找算法,在n数组中依据学号进行查找,在s数组中对应下标的值则为其成绩。例如,通过在n中的查找,得出学号为3123的同学的下标为18,则其成绩为s[18]。
/*文件名:main.c作者:小风景完成日期:2016.7.7问题描述:请编程序,输入学号,查找出该同学的成绩。提示1:可以定义两个int型数组,其中一个n存放学号,另一个s存放成绩,可以保证两个数组中,元素下标相同,对应的是同一位同学。例如n[18]值为3123,s[18]为98,说明学号为3123的同学成绩为98。提示2:因为数据无序,运用顺序查找算法,在n数组中依据学号进行查找,在s数组中对应下标的值则为其成绩。例如,通过在n中的查找,得出学号为3123的同学的下标为18,则其成绩为s[18]。程序输出:*/#include <stdio.h>#include <string.h>#include <stdlib.h>int readData(int num[],int score[]);int search(int num[],int n,int m);int main(){ int num[200], score[200]; //分别保存学号和成绩 int count; //代表学生人数 int index; //代表查找到的学生的下标 int key; count = readData(num, score); //将成绩数据从文件中读到数组中 printf("请输入要查找的学生学号:"); scanf("%d",&key); index = search(num, count, key); //在count个学生中查找学号为key的学生对应的下标 if(index<0) //输入的学号不存在时,index的值要求返回-1 printf("不存在学号为%d的同学\n",key); else printf("学号为%d的同学的成绩是:%d\n", key, score[index]); return 0;}int readData(int num[],int score[]){ FILE *fp = NULL; int output = 0; int inputnum = 1; int i = 0; int j = 0; if((fp = fopen("score1.txt","r")) == NULL) { printf("file score1.txt open error!"); exit(1); } while(fscanf(fp,"%d",&output) != EOF) { if(inputnum % 2 !=0) { num[i] = output; i++; } else { score[j] = output; j++; } inputnum++; } if(i != j) { printf("read data error!"); exit(1); } fclose(fp); return i;}int search(int num[],int n,int m){ int index = 0; int i = 0; for(i = 0;i < n;i++) { if(num[i] == m) { index = i; break; } } return index;}
程序运行结果:
总结:这个程序中较难的部分在于如何读取文件并正确的存放到两个相应的数组中,根据文档中数据的位置和特性,有两种方法,一种是判断分数,将小于100的分数存入score数组,而该程序采用另一种,根据数据存放的位置来存放,由于一行存放学号和成绩,中间有空格,因此采用fscanf读取数据,当读取到空格时会停止,然后根据读取的次数是否而2的倍数来存放,能被2整除的数全为成绩,存放到score中。
0 0
- 提高项目26.1-查成绩
- 提高项目26.2-查成绩2
- 提高项目13-成绩处理 函数版
- 项目26.1 成绩等级
- 提高篇 第16-19课后---项目2 - 成绩处理
- 提高项目22-成绩处理函数版 (参数)
- 提高篇十六讲——项目2- 成绩处理
- C语言提高-27讲: 编写查找和排序函数(查成绩)
- NOIP2017提高成绩
- 输入学号查成绩
- java 缓存--查成绩
- 算法提高 统计平均成绩
- NOIP2017提高组广东省成绩
- 西北农林科技大学校外查成绩
- applehi和查成绩网
- 提高篇编程项目 第十九讲项目二/三 成绩处理 当年第几天(数组方案)
- 成绩处理 项目2
- 【项目2- 成绩处理】
- 正交投影到子空间/欧式投影到子空间或仿射空间或凸集
- logstash+elasticsearch+kibana快速搭建日志平台
- ios developer tiny share-20160630
- 你还在靠“喂喂喂”来测语音通话质量吗,看完这篇文章你就能掌握正确姿势。
- 手动关闭下拉状态栏
- 提高项目26.1-查成绩
- html关于find使用时的一次使用大坑
- Java编程思想之初始化与清理
- 移动芯片主要架构技术特性及产业化应用分析
- 科大讯飞语音识别使用过程中踩过的坑
- Git常用命令
- kafka探究
- 设置ssh无密码登录
- 如何设置eclipse的自动补全功能