- 打卡等级:偶尔看看
- 打卡总天数:10
- 打卡月天数:0
- 打卡总奖励:2100
- 最近打卡:2025-05-20 09:38:24
管理员
- 积分
- 2928
|
根据题目描述,打开BlockCode,编写C语言程序完成文件操作。
本题分值:50分
考核时间:70分钟
考核方式:实操
考核内容:将10000个随机数保存到“number.txt”文件中(每个数字一行)。求这10000个数字的最大值、最小值和平均值,并将其输出到“number.txt”文件最后三行。
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- float find_max(float arr[], int n){
- float max = arr[0];
- for (int i = 1; i < n; i++){
- if (arr[i] > max){
- max = arr[i];
- }
- }
- return max;
- }
- float find_min(float arr[], int n){
- float min = arr[0];
- for (int i = 1; i < n; i++){
- if (arr[i] < min){
- min = arr[i];
- }
- }
- return min;
- }
- float find_average(float arr[], int n){
- float sum = 0;
- for(int i = 0; i < n; i++){
- sum += arr[i];
- }
- return sum / n;
- }
- int main(){
- const int n = 10000;
- float arr[n];
- srand(time(NULL));
-
- FILE * file = fopen("number.txt","w");
- if(file == NULL){
- perror("无法打开文件");
- return 1;
- }
- for (int i=0;i<n;i++){
- arr[i]= (float)rand()/RAND_MAX * 100;
- fprintf(file,"%.2f\n",arr[i]);
- }
- float max = find_max(arr ,n);
- float min = find_min(arr,n);
- float average = find_average(arr,n);
-
- fprintf(file,"Max:%.2f\n",max);
- fprintf(file,"Min:%.2f\n",min);
- fprintf(file,"Avg:%.2f\n",average);
-
- fclose(file);
- return 0;
- }
复制代码
|
|