Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <ctype.h>
- void sortFloatArray(float* arr, int size);
- int readFloatsFromFile(float* arr, FILE* file);
- int outputFloatsToFile(float* arr, int size, FILE* file);
- int main(int argc, char* argv[]){
- char buffer[BUFSIZ + 1];
- float nums[20000];
- FILE *pfile;
- FILE *ofile;
- if(argc > 1){
- pfile = fopen(argv[1], "r");
- ofile = fopen(argv[0], "w");
- }else{
- puts("Input a filename: ");
- gets(buffer);
- pfile = fopen(buffer, "r");
- puts(buffer);
- }
- int size = readFloatsFromFile(nums, pfile);
- if(size == 0){
- puts("FILE NOT FOUND");
- return 0;
- }
- sortFloatArray(&nums[0], size);
- if(ofile == NULL){
- puts("Output File Name: ");
- gets(buffer);
- pfile = fopen(buffer, "w");
- }
- if(!outputFloatsToFile(&nums[0], size, pfile)){
- puts("CANNOT CREATE FILE");
- return 0;
- }
- return 1;
- }
- int readFloatsFromFile(float* arr, FILE* file){
- int ndx = 0;
- char buffer[BUFSIZ + 1];
- if(file != NULL){
- while(fgets(buffer, sizeof(buffer), file) != NULL){
- if(buffer[0] != '\n'){
- arr[ndx] = atof(buffer);
- ndx++;
- }
- }
- }else{
- puts("FILE NOT FOUND");
- return 0;
- }
- fclose(file);
- return ndx;
- }
- int outputFloatsToFile(float* arr, int size, FILE* file){
- if(file != NULL){
- int i;
- for(i = 0;i < size; i++){
- fprintf(file, "%f\n", arr[i]);
- }
- }else{
- puts("CANNOT CREATE FILE");
- }
- }
- void sortFloatArray(float* arr, int size){
- int i;
- int j = 0;
- for(i = 1; i < size; i++){
- float temp = *(arr+i);
- j = i-1;
- while(j >= 0 && *(arr+j) > temp){
- *(arr+(j + 1)) = *(arr+(j));
- j--;
- }
- *(arr+(j + 1)) = temp;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement