现在的位置: 首页 > 竞赛 > 正文

【竞赛入门】第2章 循环结构

2011年04月13日 竞赛 ⁄ 共 446字 ⁄ 字号 暂无评论

【数据统计】
先读入一个数,假定这个数定位 max, min。

如果之后读入的数,大于max,则更新 max;
如果之后读入的数,小于min, 则更新 min;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
int main()
{
    int x, min, max, count, sum;
 
    scanf("%d", &x);
    sum = min = max = x;
    count = 1;
 
    while(scanf("%d", &x)!=EOF) {
        sum += x;
        count++;
        if(x < min) min = x;
        if(x > max) max = x;
    }
    printf("%d\n", min);
    printf("%d\n", max);
    printf("%.3lf\n",(double)sum/count);
 
    return 0;
}

如果输入的数很多,每次运行时都手动输入,非常麻烦。
其实可以把这些数放在文件如 data.in.txt 中, 程序从文件中读取而不是从标准输入 stdin

做法超乎寻常的简单,只需在 main 函数中添加一行代码就可实现

1
2
3
4
5
6
7
8
9
10
#include<stdio.h>
int main()
{
    freopen("data.in.txt", "r", stdin);
    int x, min, max, count, sum;
 
    省略 ......
 
    return 0}

如果要把结果保存到文件(如 data.out.txt)而不是输出到屏幕,该如何做呢?

1
    freopen("data.out.txt", "w", stdout);

抱歉!评论已关闭.