//程序设计题:学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生人数。

//重难点:结构体的定义。结构体的使用。文件指针的定义。对文件的操作。输出格式‘%4d’。两种方法获取最小值。

  1. #include <stdio.h>
  2. #define N 16
  3. typedef struct//定义一个新结构体类型
  4. { char num[];
  5. int s;
  6. } STREC;//新类型名称
  7. int fun( STREC *a, STREC *b )//形参这里可以有三种定义方式,指针,数组,数组加下标
  8. {
  9. //第一种方法:先把第一个数定义为最小的,然后遍历,如果遇见更小的就重新赋值。
  10. int i, j;
  11. j = ;
  12. int min = a[].s;
  13. for (i = ; i < N; i++)
  14. {
  15. if (min > a[i].s)
  16. {
  17. min = a[i].s;
  18. }
  19. }
  20. for (i = ; i < N; i++)
  21. {
  22. if (a[i].s == min)
  23. {
  24. b[j]= a[i];
  25. j++;
  26. }
  27. }
  28. return j;//这里不是j+1,因为上面多了一次j++。
  29. /* //第二种方法:先把a数组进行由小到大的排序,然后再遍历一遍,和第一个相等的,都输出出来。
  30. int i, j, t;
  31. STREC m;
  32. t = 1;
  33. for (i = 0; i < N; i++)
  34. {
  35. for (j = i; j < N; j++)
  36. {
  37. if (a[i].s > a[j].s)
  38. {
  39. m = a[i];
  40. a[i] = a[j];
  41. a[j]= m;
  42. }
  43. }
  44. }
  45. b[0]= a[0];//灵活变通,如果分开不能赋值的话,就把整体直接交换定义。
  46. for (i = 1; i < N; i++)
  47. {
  48. if (b[0].s == a[i].s)
  49. {
  50. b[i]= a[i];
  51. t = t + 1;
  52. }
  53. }
  54. return t;*/
  55. }
  56. main()
  57. {
  58. //定义结构体数组。
  59. STREC s[N]={{"GA05",},{"GA03",},{"GA02",},{"GA04",},
  60. {"GA01",},{"GA07",},{"GA08",},{"GA06",},
  61. {"GA015",},{"GA013",},{"GA012",},{"GA014",},
  62. {"GA011",},{"GA017",},{"GA018",},{"GA016",}};
  63. STREC h[N];
  64. int i,n;FILE *out ;
  65. n=fun( s,h );//以地址方式传递
  66. printf("The %d lowest score :\n",n);
  67. for(i=;i<n; i++)
  68. printf("%s %4d\n",h[i].num,h[i].s);//注意这里是4d,所以如果是两位数,会出现两个空格。
  69. printf("\n");
  70. out = fopen("out.dat","w") ;
  71. fprintf(out, "%d\n",n);
  72. for(i=;i<n; i++)
  73. fprintf(out, "%4d\n",h[i].s);//可以修改out文件,考试的时候
  74. fclose(out);
  75. }

计算机二级-C语言-程序设计题-190112记录-结构体的遍历和结构体的数据的交换处理,文件的操作。的更多相关文章

  1. 计算机二级-C语言-程序设计题-190111记录-两种指针赋值的不同,普通输入输出函数和文件输入输出函数的使用

    //程序设计题:函数fun的功能是:将两位数的正整数a,b合并形成一个整数放在c中.合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上.例如:当 ...

  2. 计算机二级-C语言-程序设计题-190118记录-通过数组和指针两种方式对字符串进行处理。

    //编写一个函数fun,比较两个字符串的长度,(不使用C语言提供的求字符串长度的函数),函数返回较长的字符串.若两个字符长度相同,则返回第一个字符串. //重难点:通过数组处理和通过指针进行处理的不同 ...

  3. 计算机二级-C语言-程序设计题-190119记录-求出一个二维数组每一列的最小值。

    //编写一个函数:tt指向一个M行N列的二维数组,求出二维数组每列中最小的元素,并依次放入pp所指的一维数组中.二维数组中的数在主函数中赋予. //重难点:求出的是每一列的最小值,这里要注意,学会简化 ...

  4. 计算机二级-C语言-程序修改题-190108记录-字符串处理

    //程序修改题:给定程序MODI1.C中函数fun的功能是:先将字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面.例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为 ...

  5. 计算机二级-C语言-程序修改题-190116记录-对数组进行排序的两种方法。

    //函数fun的功能是:将n个无序整数从小到大排序. //冒泡排序法:小数往下浮,大数往上浮.把数都存到一个数组,然后两两比较,大数往后交换.双层递减循环. //第二种方法:都放入一个数组中,然后记录 ...

  6. 计算机二级-C语言-程序修改题-190113记录-对指定字符串的大小写变换处理。

    //给定程序中fun函数的功能是:将p所指的字符串中每个单词的最后一个字母改成大写.(这里的“单词”是指由空格隔开的字符串) //重难点:指针对数组的遍历.大小写转换的方法.第一种使用加减32 得到, ...

  7. 计算机二级-C语言-程序修改题-190123记录-对整数进行取余和除以操作。

    //函数fun功能:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中.高位仍在高位,低位仍在低位. //重难点:思路:因为不是字符串,所以可以把问题变成整数的操作,采用取余和除的操作.对整 ...

  8. 计算机二级-C语言-程序修改题-190114记录-对整型变量进行取余操作可以取得各个位上的值。

    //给定程序中fun函数的功能是:从低位开始取出长整形变量s中奇数位上的数,依次构成一个新的数放在t中.高位仍在高位,低位仍在低位.例如:当s中的数为7654321时,t中的数为7531. //重难点 ...

  9. 计算机等级考试【二级C语言程序设计】知识点整理

    *免责声明:本文章中所收集或者引用到的内容的所有版权均为引用内容的原作者所有,本站仅作收集并整理,不承担任何法律责任! *题库收集来源于:[未来教育考试软件2017年版 - 计算机二级 - C语言程序 ...

随机推荐

  1. vue里不同数据的循环,其中的数组对象

    用产品的属性数据说明 页面里显示效果为:要把产品的属性显示到页面上,产品属性为后台自主上传产品的属性,产品的属性不同,所以需要把属性和属性值显示到页面上 产品属性数据为: properties: &q ...

  2. PLL

    PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时脉讯号,使内存能正确的存取资料.PLL用于振荡器中的反馈技术. 许多电子设备要正常工作,通常需要外部的输入信号与内部的 ...

  3. [C#] 委托与匿名方法

    using System; namespace 匿名函数 { class Program { delegate void TestDelegate(string s); static void M(s ...

  4. EntityFramework使用SqlCe数据库

    使用NuGet添加下面3个引用 App.Config的<entityFramework>节点这样配置: <entityFramework> <defaultConnect ...

  5. Java学习笔记(十)面向对象---接口

    理解 初期理解 可以认为接口是一个特殊的抽象类.当接口中的方法都是抽象的,那么该类可以通过接口的形式来表示. class用于定义类 interface用于定义接口 格式特点 接口中常见定义:常量,抽象 ...

  6. 【网易官方】极客战记(codecombat)攻略-地牢-循环又循环

    关卡连接: https://codecombat.163.com/play/level/loop-da-loop 循环真是救命恩人! 简介: 你只需要 一个 while true循环 加上 4 条语句 ...

  7. jmeter的使用---用户变量

    用户变量有以下方式: 一.外部引入:csv引入参数 二.sample传递参数:http请求的body参数 三.定义用户变量:全局变量 (1)用户定义的变量 name,和value   一对一 (2)用 ...

  8. Gym安装ubuntu16.04

    Step1:将gym克隆到计算机上: git clone https://github.com/openai/gym.git 如果你的电脑没有安装git,那么键入 sudo apt install g ...

  9. drf框架,restful接口规范,源码分析

    复习 """ 1.vue如果控制html 在html中设置挂载点.导入vue.js环境.创建Vue对象与挂载点绑定 2.vue是渐进式js框架 3.vue指令 {{ }} ...

  10. Window下cmd查看目录结构

    在Linux下通过安装tree可以查看文件的目录结构: tree -L 比如上面这个命令就是查看当前目录下的所有目录及文件,深度为2级. 在windows下也有同样的命令,如下使用 tree /f 查 ...