一个编程题目的习语言实现
2009-03-12 11:28
330 查看
【
feter1网友在群中提了如下一个编程题目:
现有一数组,其元素值见文件test.txt,要求通过编程的方法求出这组数中值最大的元素、值最小的元素和中值元素。结果通过编程的方法写入文本文件中输出。
数据源文件的结构说明如下:
a) 文件中的第一行为数组中元素总数(不包括自身所在行),第一行不参与运算。
b) 从第二行起为数组中的元素取值。
c) 中值,即数组中元素按照一定顺序排序后,位于中间的数即为该数组的中值。如,数组{13,5,8,14,22,37,26,19,11}的中值为14。
上面问题的习程序实现如下: ( 程序带有调试打印语句 )
】
#包含 "习语言系统.接口"
无返回值 插入数字( 整数类型 *数组, 整数类型 数组长度, 整数类型 *数据个数, 整数类型 添加数 )
{
整数类型 你,我;
如果( * 数据个数 等于 0 并且 数组长度>0)
{
数组[0] = 添加数;
(*数据个数) 加加;
}
或者( 数组长度 > *数据个数 )
{
数组[*数据个数] = 添加数;
步进循环(你 = *数据个数; 你> 0; 你 减减 )
{
如果( 数组[ 你] > 数组[你-1] )
{
我= 数组[你];
数组[你]=数组[你-1];
数组[你-1]=我;
}
}
(*数据个数) 加加;
}
系统_格式输出(“%(换行)%(整数):%(整数),%(整数),%(整数),%(整数),%(整数),%(整数),%(整数),%(整数)”,
*数据个数, 数组[0] ,数组[1],数组[2],数组[3],数组[4],数组[5],数组[6],数组[7]);
}
整数类型 主函数( )
{
文件类型 *wj;
字符类型 行[256]={48,48,48,48,48,48,48,48,48,48,48,48,48};
整数类型 总数=0,当前数字;
整数类型 *输入数组, 有效数 = 0;
wj = 系统_文件_打开(“test.txt”, “r+”);
如果( wj 等于 空指针 )
{
系统_输出字符串并换行(“无法打开文件test.txt”);
返回 1;
}
如果( 系统_文件_读字符串( 行, 255, wj) != 空指针 )
{
系统_格式输出(“%(整数),%(整数),%(整数),%(整数),%(整数)”,行[0] ,行[1],行[2],行[3],行[4]);
如果( 系统_是数字( 系统_当前字(行) ) )
{
总数 = 系统_字符串转整数( 行, 空指针, 10 );
系统_格式输出(“%(换行)总数=%(整数)”,总数);
}
否则
{
系统_输出字符串并换行(“首行无效”);
返回 2;
}
}
如果(总数 等于 0 )
{
系统_输出字符串并换行(“总数错误,请检查数据文件”);
返回 3;
}
输入数组 = ( 整数类型 *)系统_申请内存数组( 总数,类型长度(整数类型) );
如果( 输入数组 等于 空指针 )
{
系统_输出字符串并换行(“内存不足”);
返回 4;
}
循环( 非 系统_文件_结束( wj ) )
{
如果( 系统_文件_读字符串( 行, 255, wj) == 空指针 )
跳出;
当前数字 = 系统_字符串转整数( 行, 空指针, 10 );
系统_格式输出(“%(换行)当前数字=%(整数)”,当前数字);
如果( 有效数 < 总数 )
插入数字( 输入数组,总数, &有效数, 当前数字 );
否则
跳出;
}
系统_格式输出(“%(换行)最大数字=%(整数)”,输入数组[0]);
系统_格式输出(“%(换行)最小数字=%(整数)”,输入数组[总数-1]);
系统_格式输出(“%(换行)中值数字=%(整数)”,输入数组[总数/2]);
系统_文件_定位( wj , 0, 宏_定位_文件尾);
系统_文件_格式输出(wj,“%(换行)最大数字=%(整数)”,输入数组[0]);
系统_文件_格式输出(wj, “%(换行)最小数字=%(整数)”,输入数组[总数-1]);
系统_文件_格式输出(wj, “%(换行)中值数字=%(整数)”,输入数组[总数/2]);
系统_文件_关闭( wj );
系统_释放内存( 输入数组);
返回 0;
}
点击这里下载源码、目标代码
feter1网友在群中提了如下一个编程题目:
现有一数组,其元素值见文件test.txt,要求通过编程的方法求出这组数中值最大的元素、值最小的元素和中值元素。结果通过编程的方法写入文本文件中输出。
数据源文件的结构说明如下:
a) 文件中的第一行为数组中元素总数(不包括自身所在行),第一行不参与运算。
b) 从第二行起为数组中的元素取值。
c) 中值,即数组中元素按照一定顺序排序后,位于中间的数即为该数组的中值。如,数组{13,5,8,14,22,37,26,19,11}的中值为14。
上面问题的习程序实现如下: ( 程序带有调试打印语句 )
】
#包含 "习语言系统.接口"
无返回值 插入数字( 整数类型 *数组, 整数类型 数组长度, 整数类型 *数据个数, 整数类型 添加数 )
{
整数类型 你,我;
如果( * 数据个数 等于 0 并且 数组长度>0)
{
数组[0] = 添加数;
(*数据个数) 加加;
}
或者( 数组长度 > *数据个数 )
{
数组[*数据个数] = 添加数;
步进循环(你 = *数据个数; 你> 0; 你 减减 )
{
如果( 数组[ 你] > 数组[你-1] )
{
我= 数组[你];
数组[你]=数组[你-1];
数组[你-1]=我;
}
}
(*数据个数) 加加;
}
系统_格式输出(“%(换行)%(整数):%(整数),%(整数),%(整数),%(整数),%(整数),%(整数),%(整数),%(整数)”,
*数据个数, 数组[0] ,数组[1],数组[2],数组[3],数组[4],数组[5],数组[6],数组[7]);
}
整数类型 主函数( )
{
文件类型 *wj;
字符类型 行[256]={48,48,48,48,48,48,48,48,48,48,48,48,48};
整数类型 总数=0,当前数字;
整数类型 *输入数组, 有效数 = 0;
wj = 系统_文件_打开(“test.txt”, “r+”);
如果( wj 等于 空指针 )
{
系统_输出字符串并换行(“无法打开文件test.txt”);
返回 1;
}
如果( 系统_文件_读字符串( 行, 255, wj) != 空指针 )
{
系统_格式输出(“%(整数),%(整数),%(整数),%(整数),%(整数)”,行[0] ,行[1],行[2],行[3],行[4]);
如果( 系统_是数字( 系统_当前字(行) ) )
{
总数 = 系统_字符串转整数( 行, 空指针, 10 );
系统_格式输出(“%(换行)总数=%(整数)”,总数);
}
否则
{
系统_输出字符串并换行(“首行无效”);
返回 2;
}
}
如果(总数 等于 0 )
{
系统_输出字符串并换行(“总数错误,请检查数据文件”);
返回 3;
}
输入数组 = ( 整数类型 *)系统_申请内存数组( 总数,类型长度(整数类型) );
如果( 输入数组 等于 空指针 )
{
系统_输出字符串并换行(“内存不足”);
返回 4;
}
循环( 非 系统_文件_结束( wj ) )
{
如果( 系统_文件_读字符串( 行, 255, wj) == 空指针 )
跳出;
当前数字 = 系统_字符串转整数( 行, 空指针, 10 );
系统_格式输出(“%(换行)当前数字=%(整数)”,当前数字);
如果( 有效数 < 总数 )
插入数字( 输入数组,总数, &有效数, 当前数字 );
否则
跳出;
}
系统_格式输出(“%(换行)最大数字=%(整数)”,输入数组[0]);
系统_格式输出(“%(换行)最小数字=%(整数)”,输入数组[总数-1]);
系统_格式输出(“%(换行)中值数字=%(整数)”,输入数组[总数/2]);
系统_文件_定位( wj , 0, 宏_定位_文件尾);
系统_文件_格式输出(wj,“%(换行)最大数字=%(整数)”,输入数组[0]);
系统_文件_格式输出(wj, “%(换行)最小数字=%(整数)”,输入数组[总数-1]);
系统_文件_格式输出(wj, “%(换行)中值数字=%(整数)”,输入数组[总数/2]);
系统_文件_关闭( wj );
系统_释放内存( 输入数组);
返回 0;
}
点击这里下载源码、目标代码
相关文章推荐
- 今天学习的时候偶然发现了一个有趣的题目,可以用编程实现。
- 今天学习的时候偶然发现了一个有趣的题目,可以用编程实现。
- 百度2017年暑假实习生编程题目(第二题)----2、页面调度 在计算机中,页式虚拟存储器实现的一个难点是设计页面调度(置换)算法。其中一种实现方式是FIFO算法。
- 将两个递增的有序链表合并为一个递增的有序链表(C语言编程实现)
- C++实现堆排序并记录编程中遇到的一个bug(不要对无符号整形数在--的循环中采用>=0作为结束条件)
- 第一次发博客,新手初试啊,题目如下:有两个10个元素的数组,分别为A和B,编程实现相同位置的元素, 如果 B 的元素小于 A 的元素进行数值交换:(使用回调函数实现)
- 利用Swift实现一个响应式编程库
- 3.1题目: 利用递归方法实现一个函数,该函数能够实现n的阶乘,即 n! = n*(n-1)*…*3*2*1;
- [java网络编程]一个简易网络服务器的实现
- 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3。编程找出1000以内的所有完数。
- Linux网络编程:一个简单的正向代理服务器的实现
- 第四章 基于对象的编程风格(如何实现一个class)
- 题目:有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕打印10次ABC
- 编程:用java 语言实现,输入一个数,就相应地输出的几维数组!||用1、2、2、3、4、5这六个数字,用java写一个函数,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连
- 一个java网络编程Socket的例子,实现Server与Client聊天
- 编程实现一个双向链表的建立
- 【编程题目】对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)某一个元素也加一
- 设计一个学生类,其中包含学号、姓名、成绩等数据成员,创建学生对象并且倒入到文件file.txt,然后由文件读取到另一个学生对象并输出,试编程实现。
- 剑指offer题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 如何用编程方式实现创建一个页面并替换掉站点首页