宝峰科技

 找回密码
 注册

QQ登录

只需一步,快速开始

智能终端设备维修查询系统注册会员邮箱认证须知!
查看: 3660|回复: 0

[习语言教程] 一个C语言题目的解答

[复制链接]
  • TA的每日心情
    开心
    2020-6-5 22:17
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    xiyuyan 发表于 2011-9-28 23:29:44 | 显示全部楼层 |阅读模式

    欢迎您注册加入!这里有您将更精采!

    您需要 登录 才可以下载或查看,没有账号?注册

    x
    从下一行开始到结尾即是程序代码,包含全部信息,唯有习语言编译工具支持这种文章风格的C程序,采用习语言最新版本编译运行:

    第七题程序,原题描述:
    文件data.in中保存有m (m < 2000) 个数据行,每行最多包含25个由空格分隔的正整数。
    给出整数k(k <26),计算文件中第k列所有数据的最大值、最小值和平均值。
    最大值和最小值以整数格式输出,平均值保持两位小数。若某行的列数小于k,则认为该行第k列的值为0
    1. #包含 “习语言系统.接口”

    2. 字符串类型  输入文件名 = “data.in”;
    3. #定义  最大行   2000
    4. #定义  最大列   25
    5. #定义  行最大字节数   2048  
    6. #定义  缺省进制   10
    7. 整数类型 主函数(整数类型 参数个数, 字符串类型 参数[] )
    8. {   
    9. 整数类型  输入数据[最大行][最大列], 行,行数, 列, 数字, 最大值=-1, 最小值=-1;
    10. 字符类型    输入行[行最大字节数], *指针;
    11. 文件类型 * 输入文件;
    12. 小数类型    总和 = 0;

    13.    输出字符串并换行("第七题程序处理开始,使用中文c-习语言编译工具编译");
    14. 【先都初始化为 0】
    15. 步进循环( 行 = 0; 行 小于 最大行; 行 加加 )
    16. {
    17.   步进循环( 列 = 0; 列 小于 最大列; 列 加加 )
    18.    输入数据[行][列] = 0;
    19. }
    20. 输入文件 = 文件打开( 输入文件名, “读”);
    21. 如果( 输入文件  等于 空指针 )
    22. {
    23.   格式输出( “无法打开文件%串%行”,输入文件名);
    24.   返回 1;
    25. }
    26. 行=-1, 列=0;
    27. 重复{
    28.   如果( 文件读字符串( 输入文件, 输入行, 行最大字节数 ) )
    29.   {
    30.    如果( 行 小于 最大行-1 )行 ++, 列 = 0;
    31.    否则 跳出;
    32.    
    33.    指针 = 输入行;
    34.    当( 字符串长度(指针) 大于 0 )
    35.    {
    36.     数字 = 字符串转整数( 指针, 缺省进制 , & 指针 );
    37.     格式输出(“行 %整 :数字=%整%行”,行, 数字 );   【调试用,可屏蔽】
    38.     如果( 列 小于 最大列 ) 输入数据[行][列++] = 数字;
    39.     当(*指针 并且 !是半角数字( *指针) )指针 ++;
    40.    }
    41.   }
    42. }直到( 文件结束(输入文件) );
    43. 文件关闭( 输入文件 );
    44. 行数 = 行+1;

    45. 格式输出(“行数 %整 :数字=%整%行”,行数,输入数据[行][0] );  【调试用,可屏蔽】

    46. 重复{
    47.   格式输出( “请输入列:”);
    48.   格式输入( “%(整数)”, 取地址 列);
    49.   如果(列 小于 1  或 列 大于 最大列 )
    50.    格式输出( “输入错误,必须大于0 小于 %整 %行”, 最大列+1 );
    51. }直到( 列 大于 0 并且  列 小于等于 最大列 );
    52. 列 -= 1;

    53. 步进循环( 行 = 0; 行 小于 行数; 行 加加 )
    54. {
    55.   总和 += 输入数据[行][列] ;
    56.   格式输出( “总和=%小, 行=%整,数据= %整 %行”, 总和, 行,  输入数据[行][列] );  【调试用,可屏蔽】
    57.   如果( 最大值 小于 0 )     最大值  =  输入数据[行][列];
    58.   或者( 最大值 小于  输入数据[行][列] ) 最大值  =  输入数据[行][列];
    59.    
    60.   如果( 最小值 小于 0 )     最小值  =  输入数据[行][列];
    61.   或者(  最小值 大于  输入数据[行][列] )最小值 =   输入数据[行][列];
    62. }
    63. 格式输出( “计算结束,第%整列总和=%小,平均值=%小, 最大值=%整,最小值=%整 %行”,列, 总和, 总和/行数, 最大值, 最小值 );
    64. 暂停();
    65. 返回 0;
    66. }   
    复制代码

    data.in 内容:
    2 5  7  23 444 92   2 54
    33   4   82   11
    44  5   7   9   36   711
    3  4    111  333  21   66
    4   4    555  55  5   


    运行结果:
    第七题程序处理开始,使用中文c-习语言编译工具编译
    行 0 :数字=2
    行 0 :数字=5
    行 0 :数字=7
    行 0 :数字=23
    行 0 :数字=444
    行 0 :数字=92
    行 0 :数字=2
    行 0 :数字=54
    行 1 :数字=33
    行 1 :数字=4
    行 1 :数字=82
    行 1 :数字=11
    行 2 :数字=44
    行 2 :数字=5
    行 2 :数字=7
    行 2 :数字=9
    行 2 :数字=36
    行 2 :数字=711
    行 3 :数字=3
    行 3 :数字=4
    行 3 :数字=111
    行 3 :数字=333
    行 3 :数字=21
    行 3 :数字=66
    行 4 :数字=4
    行 4 :数字=4
    行 4 :数字=555
    行 4 :数字=55
    行 4 :数字=5
    行数 5 :数字=4
    请输入列:3
    总和=7.000000, 行=0,数据= 7
    总和=89.000000, 行=1,数据= 82
    总和=96.000000, 行=2,数据= 7
    总和=207.000000, 行=3,数据= 111
    总和=762.000000, 行=4,数据= 555
    计算结束,2列总和=762.000000,平均值=152.400000, 最大值=555,最小值=7
    按任意键继续
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    免责声明

    本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件编程开发或软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习编程开发技术或逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者用于商业用途!否则,一切后果请用户自负!

    QQ|Archiver|手机版|小黑屋|联系我们|宝峰科技 ( 滇公网安备 53050202000040号 | 滇ICP备09007156号-2 )

    Copyright © 2001-2023 Discuz! Team. GMT+8, 2024-12-22 12:30 , File On Powered by Discuz! X3.49

    快速回复 返回顶部 返回列表