试题描述
已知文本文件file3.txt中连续存放了30个整数,邻近两数之间用一个空格隔开。分别为某班30个学生的成绩。
编写程序,读入文件中的整数,计算该班学生的平均成绩,输出要求保留小数点后2位有效数字。并且统计输出优秀学生( >= 90分)和待达标学生( < 60分)的人数。
注意:1.路径及文件名为"file3.txt",注意不要写路径。2.只允许使用只读方式打开文件。
输入
读文件输入。
输出
输出平均成绩、优秀学生和待达标学生的人数,邻近两数之间用一个空格隔开。输出平均成绩要求保留小数点后2位有效数字。
文件内容示例
63 75 69 88 72 67 77 81 75 90 76 79 85 77 86 89 83 100 92 73 64 33 82 87 54 60 80 81 79 83
输出示例
76.67 3 2
数据范围
输入为int范围的整数
参考代码(优先读取进字符串,非直接fread)
#include<stdio.h>
#include<string.h>
int main()
{
int i=0,min=21474836473;
char buf[99999];
float t=0;
int you=0,bu=0;
FILE *fp;
fp =fopen("file3.txt","r");
fgets(buf, 999999, fp);
int len=strlen(buf),temp;
while(sscanf(buf+i,"%d",&temp))
{
if(i==len+1) break;
t+=temp;
if(temp>=90)
you++;
else if(temp< 60)
bu++;
while(temp/=10)
i++;
i+=2;
}
t/=30;
printf("%.2f %d %d",t,you,bu);
return 0;
}
Code language: PHP (php)