`
luotuoass
  • 浏览: 639257 次
文章分类
社区版块
存档分类
最新评论

C语言大赛 第七题

 
阅读更多

昨天发帖子下面出个C语言大赛,看了下,做了其中的第七题,没想到过期了,发布在这里吧,程序代码如下,用习语言编译工具编译:

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

#包含 “习语言系统.接口”

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

输出字符串并换行("第七题程序处理开始,使用中文c-习语言编译工具编译");
【先都初始化为 0】
步进循环( 行 = 0; 行 小于 最大行; 行 加加 )
{
步进循环( 列 = 0; 列 小于 最大列; 列 加加 )
输入数据[行][列] = 0;
}
输入文件 = 文件打开( 输入文件名, “读”);
如果( 输入文件 等于 空指针 )
{
格式输出( “无法打开文件%串%行”,输入文件名);
返回 1;
}
行=-1, 列=0;
重复{
如果( 文件读字符串( 输入文件, 输入行, 行最大字节数 ) )
{
如果( 行 小于 最大行-1 )行 ++, 列 = 0;
否则 跳出;

指针 = 输入行;
当( 字符串长度(指针) 大于 0 )
{
数字 = 字符串转整数( 指针, 缺省进制 , & 指针 );
格式输出(“行 %整 :数字=%整%行”,行, 数字 ); 【调试用,可屏蔽】
如果( 列 小于 最大列 )输入数据[行][列++] = 数字;
当(*指针 并且 !是半角数字( *指针) )指针 ++;
}
}
}直到( 文件结束(输入文件) );
文件关闭( 输入文件 );
行数 = 行+1;

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

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

步进循环( 行 = 0; 行 小于 行数; 行 加加 )
{
总和 += 输入数据[行][列] ;
格式输出( “总和=%小, 行=%整,数据= %整 %行”, 总和, 行, 输入数据[行][列] ); 【调试用,可屏蔽】
如果( 最大值 小于 0 )最大值 = 输入数据[行][列];
或者( 最大值 小于 输入数据[行][列] )最大值 = 输入数据[行][列];

如果( 最小值 小于 0 )最小值 = 输入数据[行][列];
或者( 最小值 大于 输入数据[行][列] )最小值 = 输入数据[行][列];
}
格式输出( “计算结束,第%整列总和=%小,平均值=%小, 最大值=%整,最小值=%整 %行”,列, 总和, 总和/行数, 最大值, 最小值 );
暂停();
返回 0;
}

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
按任意键继续

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics