计算机二级-C语言-程序设计题-190112记录-结构体的遍历和结构体的数据的交换处理,文件的操作。
//程序设计题:学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生人数。
//重难点:结构体的定义。结构体的使用。文件指针的定义。对文件的操作。输出格式‘%4d’。两种方法获取最小值。
#include <stdio.h>
#define N 16
typedef struct//定义一个新结构体类型
{ char num[];
int s;
} STREC;//新类型名称
int fun( STREC *a, STREC *b )//形参这里可以有三种定义方式,指针,数组,数组加下标
{
//第一种方法:先把第一个数定义为最小的,然后遍历,如果遇见更小的就重新赋值。
int i, j;
j = ;
int min = a[].s;
for (i = ; i < N; i++)
{
if (min > a[i].s)
{
min = a[i].s;
}
}
for (i = ; i < N; i++)
{
if (a[i].s == min)
{
b[j]= a[i];
j++;
}
}
return j;//这里不是j+1,因为上面多了一次j++。
/* //第二种方法:先把a数组进行由小到大的排序,然后再遍历一遍,和第一个相等的,都输出出来。
int i, j, t;
STREC m;
t = 1;
for (i = 0; i < N; i++)
{
for (j = i; j < N; j++)
{
if (a[i].s > a[j].s)
{
m = a[i];
a[i] = a[j];
a[j]= m;
}
}
}
b[0]= a[0];//灵活变通,如果分开不能赋值的话,就把整体直接交换定义。
for (i = 1; i < N; i++)
{
if (b[0].s == a[i].s)
{
b[i]= a[i];
t = t + 1;
}
}
return t;*/
}
main()
{
//定义结构体数组。
STREC s[N]={{"GA05",},{"GA03",},{"GA02",},{"GA04",},
{"GA01",},{"GA07",},{"GA08",},{"GA06",},
{"GA015",},{"GA013",},{"GA012",},{"GA014",},
{"GA011",},{"GA017",},{"GA018",},{"GA016",}};
STREC h[N];
int i,n;FILE *out ;
n=fun( s,h );//以地址方式传递
printf("The %d lowest score :\n",n);
for(i=;i<n; i++)
printf("%s %4d\n",h[i].num,h[i].s);//注意这里是4d,所以如果是两位数,会出现两个空格。
printf("\n");
out = fopen("out.dat","w") ;
fprintf(out, "%d\n",n);
for(i=;i<n; i++)
fprintf(out, "%4d\n",h[i].s);//可以修改out文件,考试的时候
fclose(out);
}
计算机二级-C语言-程序设计题-190112记录-结构体的遍历和结构体的数据的交换处理,文件的操作。的更多相关文章
- 计算机二级-C语言-程序设计题-190111记录-两种指针赋值的不同,普通输入输出函数和文件输入输出函数的使用
//程序设计题:函数fun的功能是:将两位数的正整数a,b合并形成一个整数放在c中.合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上.例如:当 ...
- 计算机二级-C语言-程序设计题-190118记录-通过数组和指针两种方式对字符串进行处理。
//编写一个函数fun,比较两个字符串的长度,(不使用C语言提供的求字符串长度的函数),函数返回较长的字符串.若两个字符长度相同,则返回第一个字符串. //重难点:通过数组处理和通过指针进行处理的不同 ...
- 计算机二级-C语言-程序设计题-190119记录-求出一个二维数组每一列的最小值。
//编写一个函数:tt指向一个M行N列的二维数组,求出二维数组每列中最小的元素,并依次放入pp所指的一维数组中.二维数组中的数在主函数中赋予. //重难点:求出的是每一列的最小值,这里要注意,学会简化 ...
- 计算机二级-C语言-程序修改题-190108记录-字符串处理
//程序修改题:给定程序MODI1.C中函数fun的功能是:先将字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面.例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为 ...
- 计算机二级-C语言-程序修改题-190116记录-对数组进行排序的两种方法。
//函数fun的功能是:将n个无序整数从小到大排序. //冒泡排序法:小数往下浮,大数往上浮.把数都存到一个数组,然后两两比较,大数往后交换.双层递减循环. //第二种方法:都放入一个数组中,然后记录 ...
- 计算机二级-C语言-程序修改题-190113记录-对指定字符串的大小写变换处理。
//给定程序中fun函数的功能是:将p所指的字符串中每个单词的最后一个字母改成大写.(这里的“单词”是指由空格隔开的字符串) //重难点:指针对数组的遍历.大小写转换的方法.第一种使用加减32 得到, ...
- 计算机二级-C语言-程序修改题-190123记录-对整数进行取余和除以操作。
//函数fun功能:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中.高位仍在高位,低位仍在低位. //重难点:思路:因为不是字符串,所以可以把问题变成整数的操作,采用取余和除的操作.对整 ...
- 计算机二级-C语言-程序修改题-190114记录-对整型变量进行取余操作可以取得各个位上的值。
//给定程序中fun函数的功能是:从低位开始取出长整形变量s中奇数位上的数,依次构成一个新的数放在t中.高位仍在高位,低位仍在低位.例如:当s中的数为7654321时,t中的数为7531. //重难点 ...
- 计算机等级考试【二级C语言程序设计】知识点整理
*免责声明:本文章中所收集或者引用到的内容的所有版权均为引用内容的原作者所有,本站仅作收集并整理,不承担任何法律责任! *题库收集来源于:[未来教育考试软件2017年版 - 计算机二级 - C语言程序 ...
随机推荐
- 参考 ZTree 加载大数据量。加载慢问题解析
参考 ZTree 加载大数据量. 1.一次性加载大数据量加载说明 1).zTree v3.x 针对大数据量一次性加载进行了更深入的优化,实现了延迟加载功能,即不展开的节点不创建子节点的 DOM. 2) ...
- jquery-validation.js验证插件使用详解
jquery-validation 使用 一.用前必备 官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: ...
- LitElement(一)概述
1.一些感悟 自从踏入编程领域开始,从html,css,JavaScript,jQuery,bootstrap开始接触前端,经常用NodeJS,ejs等模板语言来写个简单的页面,感觉蛮简单的,也不怎么 ...
- IntelliJ IDEA 2017.3尚硅谷-----模板
https://www.jetbrains.com/help/idea/using-live-templates.html
- index unique scan 与index range scan等的区别
存取Oracle当中扫描数据的方法(一) Oracle 是一个面向Internet计算环境的数据库.它是在数据库领域一直处于领先地位的甲骨文公司的产品.可以说Oracle关系数据库系统是目前世界上流行 ...
- AcWing 896. 最长上升子序列 II
#include<iostream> #include<algorithm> #include<vector> using namespace std; int m ...
- 爬山 启发式合并 / STL
题目 其实 Kano 曾经到过由乃山,当然这名字一看山主就是 Yuno 嘛.当年 Kano 看见了由乃山,内心突然涌出了一股杜甫会当凌绝顶,一览众山小的豪气,于是毅然决定登山. 但是 Kano 总是习 ...
- spring 配置
在context中配置 如:在base-package指明一个包: <context:component-scan base-package="cn.edu.dao"/> ...
- Pycharm调试django项目时发现断点失效
解决方法: 第一步: 第二步: 点击 Edit Configuration 第三步 : 点击 + 选择python 填写相关参数信息 或者 点击ok 完成配置 重启 IDE 注意 重启IDE ...
- CSS之浮动布局及相关问题
CSS之浮动布局及相关问题 1.什么是浮动: 在我们布局的时候用到的一种技术,能够方便我们进行布局,默认流动布局有不足,让块元素可以并排显示,通过让元素浮动,我们可以使元素在水平上左右 ...