例题2-5 单组数据统计

输入一些整数,求出它们的最小值,最大值和平均值(保留3为小数)。输入保证着些数都是不超过1000的整数。

样例输入:

2 8 3 5 1 7 3 6

样例输出:

1 8 4.375

//数据统计单组数据(有bug未考虑最大值和最小值的初始值)
#include <stdio.h>
main() 
{
	int x,max=0,min=0,s,i=0;
	while(scanf("%d",&x))
	{
		s+=x;
		if(min>x)
		{
			min=x;
		}
		if(max<x)
		{
			max=x;
		}
		i++;
	} 
	printf("%d %d %lf",min,max,(double)s/i) ;
}
//数据统计单组数据(bug修复)
#define LOCAL 
#include <stdio.h>
#define INF 1000000000
main() 
{
	#ifdef LOCAL
	freopen("data1.txt","r",stdin);	
	freopen("data.txt","w",stdout);
	#endif
	int x,max=-INF,min=INF,s,i=0;
	while(scanf("%d",&x))
	{
		s+=x;
		if(min>x)
		{
			min=x;
		}
		if(max<x)
		{
			max=x;
		}
		i++;
	} 
	printf("%d %d %lf",min,max,(double)s/i) ;
}

重要知识点:

1、scanf("%d",&x)可以作为循环控制条件

while(scanf("%d",&x))

2、使用文件操作的格式如下:

	freopen("data1.txt","r",stdin);	
	freopen("data.txt","w",stdout);

需要注意的问题是:data1.txt和data.txt必须要和.exe.c在同一目录下(使用环境devc++ +windows)

3、输入结束标记:(1)先按enter;再按ctrl+z,在按enter(2)enter,再按ctrl+d,再按enter

4、关于文件重定向

#define LOCAL 
#include <stdio.h>
#define INF 1000000000
main() 
{
#ifdef LOCAL
freopen("data1.txt","r",stdin);
freopen("data.txt","w",stdout);

#endif

去掉#define LOCAL ,就可以实现手动输入

5、调试程序过程中遇到的实际问题

程序运行采用文件操作无法出现结果,在in文件或输入文件末尾加上EOF

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值