最大数与最小数
有M个(M<=10000)10进制整数,求出这M个数字中的最大值和最小值。(每个数字的绝对值不大于1000000)。
输入说明
在程序当前路径下存在文本文件data.txt,程序从data.txt中读取输入数据。
data.txt包含一行数字,数字间用空格隔开。
输出说明
输出包括两个整数,分别为给定M个数中的最大值与最小值,用空格隔开。
示例
data.txt 内容为: 1 2 3 4 5 6 7 8 9
预期输出: 9 1
1.用一个数组初始化为0,fscanf读入到数组里面
每次读一个数字一个ch,直到为eof
或者
这样也可,因为fscanf会自动到对应%d的位置
2.normal
char ch = fgetc(fin);
fseek(fin, 0, 0);
while (ch != EOF)
{
fscanf(fin, "%d", &a[i]);
i++;
ch = fgetc(fin);
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fin;
char filename[] = "data.txt";
fin= fopen(filename, "r+");
if (fin== NULL)
printf("打开失败");
int a[100] = { 0 }, i = 0;
char ch = fgetc(fin);
fseek(fin, 0, 0);
while (ch != EOF)
{
fscanf(fin, "%d", &a[i]);
i++;
ch = fgetc(fin);
}
int k = i;
int min=999, max=-999;
for (i = 0; i < k; i++) {
if (a[i] > max)
max = a[i];
if (a[i] < min)
min = a[i];
}
printf("%d %d", max, min);
return 0;
}