您的位置:首页 > 编程语言

一个编程题目的习语言实现

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;
}

点击这里下载源码、目标代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐