一步一步写算法(查找指定学生的成绩)
来源:互联网 发布:javascript教程 正则 编辑:程序博客网 时间:2024/04/28 15:11
v 查找指定学生信息:
v 程序示例:
#include <stdio.h>#include <string.h>#include <stdlib.h>#define PERSONS 1000#define NAME_LEN 50char *memory_init(){return (char *)malloc(sizeof(char)*10); //知识点1:malloc }int getinfo(char *name[],int *score,char *target){int i;printf("Please input the name and score:\n");for(i = 0;i < PERSONS;i++){scanf("%s",name[i]); //知识点2:如何获取多个字符串的信息 if(strcmp(name[i],"end") == 0){break;}scanf("%d",score+i);}printf("Please input the target student:\n");scanf("%s",target);return 1;}int lookup(char *name[],char *target){int i = 0;for(i = 0;i < PERSONS;i++){if(strcmp(name[i],target) == 0) //查找到指定学生则返回i {printf("i : %d\n",i);return i;}}}int main(){char *name[PERSONS] = {0};int score[PERSONS] = {0};char target[NAME_LEN] = {0};int i = 0;int result;int n;for(i = 0;i < PERSONS;i++){name[i] = memory_init(); //为指针数组开辟一段合理的空间 }result = getinfo(name,score,target); //获取学生信息的模块 if(result == 0) //模块返回值为0,则getinfo函数运行不成功 {printf("Get the name and score fail.\n");} n = lookup(name,target); //查找指定学生的模块 printf("The target student is: %s grade:%d\n",target,score[n]);return 0;}
v 感悟:
这个程序是我在学习完数组和指针后写的,程序代码不超过100行。不过当初自己写的时候,却出现了不少错误。在调试这些错误的过程中,我也获得了一些关于C语言编写程序的感悟。
1. C语言是一个面向过程的语言,所以每次在写一个程序的时候,一定要先想好这个程序的算法是怎样的。可以先在草稿纸上整理好自己的思路,再开始编写。否则,写着写着很容易乱掉。
2. C程序编写要养成分模块的习惯,这样可以使自己的程序结构更清晰。
3. 编写C程序的一个个模块的时候,尤其是程序要实现的功能还比较多的时候,最好一个模块编写完就测试一下(可以使用最简单的printf函数),看运行是否正确。这样有利于最后的调试,也可以减少一些不必要的错误。我觉得像我这样刚刚入门C的人来说,这样写还是有好处的。
4.最后调试结果时,如果没有出现结果,在几个关键的地方加上printf,可以让我们清晰的看到一些错误
以上就是我对于这个程序的一些学习感悟,希望自己好好养成这些比较的程序编写习惯,一步一步将C语言的基础打好,向程序编写的更高阶段进发。
阅读全文
0 0
- 一步一步写算法(查找指定学生的成绩)
- 一步一步写算法(之查找)
- 一步一步写算法(之查找)
- 一步一步写算法(之查找)
- 一步一步写算法(之查找)
- 一步一步写算法(之查找)
- 一步一步写算法(之查找)等一系列算法
- 一步一步写算法(之字符串查找 上篇)
- 一步一步写算法(之字符串查找 中篇)
- 一步一步写算法(之字符串查找 下篇)
- 一步一步写算法(之字符串查找 上篇)
- 一步一步写算法(之字符串查找 中篇)
- 一步一步写算法(之字符串查找 下篇)
- 关于获取学生最高成绩的查找
- 一步一步写算法(之静态查找)
- 查找学生成绩
- 一步一步写算法(之)
- 一步一步写算法(开篇)
- json查找key,json遍历
- JZOJ 5424. 【NOIP2017提高A组集训10.25】凤凰院凶真
- 【JZOJ5415】【NOIP2017提高A组集训10.22】[斜率优化]公交运输
- Vue之2.x版本父子组件双向绑定事件
- Android 编译系统-记录
- 一步一步写算法(查找指定学生的成绩)
- 关于Android Studio的Failed to find Build Tools revision异常问题处理记录
- 谈谈布局那些事
- 剑指offer——面试题37:两个链表的第一个公共结点
- C++primer第三章笔记
- Android --- 视图绘制监听
- 计算长方形的面积和周长
- myeclipse导入jdom/dom4j等jar包
- 分布式系统如果保证订单号唯一性?