用c语言,求一系列整形数据中最小20个数中相对于第一个数据偏移量为奇数的数据中能够被2和5整除的数据的个数将所求得的和显示在屏幕上并将这20个最小的数与所求得的结果写入文件中
时间: 2024-02-21 21:01:22 浏览: 39
好的,这个问题可以用以下的C语言代码来解决:
```c
#include <stdio.h>
int main() {
int data[] = {5, 8, 6, 9, 2, 1, 4, 3, 7, 10, 15, 12, 13, 11, 18, 16, 14, 17, 19, 20, 25, 22, 21, 24, 23, 26, 27, 28, 29, 30}; // 一系列整形数据
int min_data[20]; // 最小的20个数
int count = 0; // 能够被2和5整除的数据的个数
// 找出最小的20个数
for (int i = 0; i < 20; i++) {
int min = data[i];
int index = i;
for (int j = i + 1; j < 30; j++) {
if (data[j] < min) {
min = data[j];
index = j;
}
}
data[index] = data[i];
data[i] = min;
min_data[i] = min;
}
// 统计能够被2和5整除的数据的个数
for (int i = 0; i < 20; i++) {
if ((min_data[i] - data[0]) % 2 == 1 && min_data[i] % 2 == 0 && min_data[i] % 5 == 0) {
count++;
}
}
printf("能够被2和5整除的数据的个数为:%d\n", count);
// 将最小的20个数和结果写入文件
FILE *fp;
fp = fopen("result.txt", "w");
fprintf(fp, "最小的20个数为:");
for (int i = 0; i < 20; i++) {
fprintf(fp, "%d ", min_data[i]);
}
fprintf(fp, "\n能够被2和5整除的数据的个数为:%d\n", count);
fclose(fp);
return 0;
}
```
该程序定义了一个包含30个整形数据的数组data,然后通过选择排序法找出最小的20个数,并将它们保存在一个新的数组min_data中。接着,程序统计相对于第一个数据偏移量为奇数的数据中能够被2和5整除的数据的个数,并将结果输出到屏幕上。最后,程序将最小的20个数和统计结果写入一个名为result.txt的文件中。