#include<stdio.h> #include<stdlib.h> #include<string.h> #include"Ismax.h" #include<math.h> double intsummax(int* p, int num); int main() { FILE* fp; fp = fopen("data01.dat", "r"); if (fp == NULL) { printf("do not find the file!\n"); system("pause"); exit(0); } fseek(fp, 0L, SEEK_END); long a = ftell(fp); int x = a / sizeof(int);//变量的个数 rewind(fp); int *arr; arr = (int*)malloc((x) *4);//给arr分配内存 if (arr == NULL) { printf("failed to make the pin\n"); exit(0); } for (int i = 0; i < x; i++) { fscanf(fp,"%d",arr+i*4); } fclose(fp); //接下来进行冒泡排序 for (int i = 0; i < x; i++) { for (int j = i; j <= x-1; j++) { if (*(arr + j * 4) < *(arr + j * 4 + 4)) { int temp; temp = *(arr + j * 4 ); *(arr + j * 4) = *(arr + j * 4 + 4); *(arr + j * 4 + 4) = temp; } } } double z = intsummax(arr, 10); FILE* output; output = fopen("result.dat", "w"); if (output == NULL) { printf("failed to find the file\n"); free(arr); exit(0); } for (int i = 0; i < 10; i++) { fprintf(output, "%d", *(arr + i*4)); } fclose(output); free(arr); return 0; } double intsummax(int* p, int num)//算和的立方根的 { int s = 0; for (int i = 0; i < 10; i++) { s = s + *(p + i * 4); } return pow(3, s); }
时间: 2024-03-30 20:34:34 浏览: 52
你好!这段代码是读取一个文件中的整数,对这些整数进行冒泡排序,然后选择前10个整数,计算它们的和的立方根,最后将这10个整数输出到另一个文件中。其中,函数intsummax计算了前10个整数的和的立方根。这个程序看起来比较简单,但还是有一些需要注意的地方。比如,在分配内存时应该使用x * 4而不是x,因为一个int类型占用4个字节。另外,在使用fscanf函数读取文件时,应该使用arr+i*4而不是arr+i,因为指针arr的类型是int*,每次加一相当于向后移动4个字节。最后,注意输出文件时应该加上换行符,否则所有的整数会挤在一起。
相关问题
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> #include <mkl.h>
这些是C语言的标准库和Intel Math Kernel Library (MKL)的头文件。其中,stdio.h包含了输入输出函数,math.h包含了数学函数,stdlib.h包含了杂项函数和内存分配函数,string.h包含了字符串处理函数。而MKL是一个高性能数学库,提供了许多数学函数和算法,例如线性代数、傅里叶变换、随机数生成等等。
#include <stdlib.h> #include <stdio.h> #include <string.h> #include <math.h>
这是一段 C 语言的代码,包含了一些常用的头文件,如stdlib.h、stdio.h、string.h和math.h。这些头文件提供了一些常用的函数和数据类型,例如:
- stdlib.h提供了内存分配与释放函数、随机数生成函数等;
- stdio.h提供了输入输出函数,如printf、scanf等;
- string.h提供了字符串操作函数,如strcpy、strcat等;
- math.h提供了数学函数,如sin、cos、sqrt等。
在实际编程中,这些头文件都是非常常用的。
阅读全文