任务和代码:
/*
*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) 下次不会犯了!