c语言编码:已知dat1.dat存放了一系列整型数据。 要求: 1)用dat1.dat中的前100个数据给数组int a[100]赋值,并在屏幕上输出(每行10个元素)。 2)使用函数 double isaver(int *p,int num) { } 求数组a中所有数组元素平均值。 3)把该函数放在头文件ISaver.h中以便在主函数中调用该函数。把所有小于平均值的数组元素(每行10个元素)和小于平均值的数组元素个数输出出来。(在屏幕上和数据文件d:\dat6.dat中同时输出) 题目中使用的数据文件请在附件中下载,解压后可使用。
时间: 2024-02-09 14:08:08 浏览: 248
zhengxianquxian.rar_C语言 .dat文件_c++ 画函数曲线_正弦曲线
以下是代码实现:
1. 读取dat1.dat中前100个整数到数组a中,并输出到屏幕上(每行10个元素):
```c
#include <stdio.h>
#define FILENAME "dat1.dat"
#define MAX 100
int main() {
FILE *fp;
int a[MAX];
int i, count = 0;
if ((fp = fopen(FILENAME, "rb")) == NULL) {
printf("Error opening file.\n");
return 1;
}
// 读取前100个整数到数组a中
fread(a, sizeof(int), MAX, fp);
// 输出数组a中的元素
printf("The first 100 integers in %s:\n", FILENAME);
for (i = 0; i < MAX; i++) {
printf("%d ", a[i]);
count++;
if (count % 10 == 0) {
printf("\n");
}
}
fclose(fp);
return 0;
}
```
2. 编写函数isaver求平均值:
```c
double isaver(int *p, int num) {
int i;
double sum = 0.0;
for (i = 0; i < num; i++) {
sum += p[i];
}
return sum / num;
}
```
3. 把isaver函数放在头文件ISaver.h中:
```c
#ifndef ISAVER_H_INCLUDED
#define ISAVER_H_INCLUDED
double isaver(int *p, int num);
#endif // ISAVER_H_INCLUDED
```
4. 在主函数中调用isaver函数并输出小于平均值的数组元素和个数:
```c
#include <stdio.h>
#include "ISaver.h"
#define FILENAME "dat1.dat"
#define MAX 100
int main() {
FILE *fp1, *fp2;
int a[MAX];
int i, count = 0, less_count = 0;
double aver;
if ((fp1 = fopen(FILENAME, "rb")) == NULL) {
printf("Error opening file.\n");
return 1;
}
// 读取前100个整数到数组a中
fread(a, sizeof(int), MAX, fp1);
// 求平均值
aver = isaver(a, MAX);
// 输出小于平均值的数组元素和个数
printf("\nElements less than the average (%.2f):\n", aver);
if ((fp2 = fopen("dat6.dat", "w")) == NULL) {
printf("Error opening file.\n");
return 1;
}
for (i = 0; i < MAX; i++) {
if (a[i] < aver) {
printf("%d ", a[i]);
fprintf(fp2, "%d ", a[i]);
count++;
less_count++;
if (count % 10 == 0) {
printf("\n");
fprintf(fp2, "\n");
}
}
}
printf("\nTotal %d element(s) less than the average.\n", less_count);
fprintf(fp2, "\nTotal %d element(s) less than the average.\n", less_count);
fclose(fp1);
fclose(fp2);
return 0;
}
```
注意:文件操作时要记得关闭文件。
阅读全文