C语言提高-第21讲: 首尝排序——冒个泡(工资的排序)

任务和代码:

/* 
*All rights reserved 
*文件名称:main.c 
*作者: Osseyda 
完成日期:2017.10.20 
*版本号:v2. 
*问题描述:从文件salary.txt中读入工人的工资(不超过500人),全部增加20%(好事),然后对工资数据进行排序,将排序后的结果保存到文件ordered_salary.txt中。
*/  
#include 
#include 
int main(){
    FILE *fp;
    int n=0,i,j;
    double a[500],t;
    //将数据从文件读入数组,并将原数组元素扩大1.2倍
    if((fp=fopen("salary1.txt","r"))==NULL){
        printf("data cannot be opened");
        exit(0);
    }
    while(fscanf(fp,"%lf",&a[n])!=EOF){//共n个数据
        a[n]*=1.2;
        n++;
    }
    fclose(fp);
    //冒泡法排序数组元素
    for(i=0;ia[j+1]){
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    //将数据保存到文件
    if((fp=fopen("order_salary.txt","w"))==NULL){
        printf("order_salary cannot be opened");
        exit(0);
    }
    for(i=0;i
salary1.txt


知识点总结:

       从文件中读取多个数据放入数组中;冒泡法排序;将数组中的数据保存到文件中


心得:

      这道题的感受是,原先用了一样的思路,order_salary.txt中始终出不来数据,找了半天的错误也没找到。重新编程又成功了

      知道为什么了!在保存数据到文件的时候

if((fp=fopen("order_salary.txt","w"))==NULL)
      写成了
if(fp=(fopen("order_salary.txt","w"))==NULL)
      下次不会犯了!

你可能感兴趣的:(C语言提高)