问题及代码:
/* Copyright(c)2018,学院行者- All rights reserved. 文件名称:main.c 作者:乔帅 完成日期:2018年3月15日 版本号:v1.0 问题描述:工资的排序 输入描述:从文件中读取工人工资 程序操作:全部工资上涨20% 程序输出:将修改完的数据保存到文件中 */ #include<stdio.h> int main() { double salary[500]; FILE *fpin , *fpout; fpin = fopen("salary.txt" , "r"); if(fpin == NULL){ printf("salary file open error!"); exit(1); } fpout = fopen("ordered_salary.txt" , "w"); if(fpout == NULL){ printf("cannot write to file!"); exit(1); } int n = 0; while(fscanf(fpin,"%lf",&salary[n])!=EOF){ salary[n] *= 1.2; n++; } fclose(fpin); int i , j; double temp; for(i = 0 ; i < n-1 ; i++){ for(j = 0 ; j < n-i-1 ; j++){ if(salary[j]>salary[j+1]){ temp = salary[j+1]; salary[j+1] = salary[j]; salary[j] = temp; } } } for(i = 0 ; i < n ; i++){ fprintf(fpout , "%.2lf\n" , salary[i]); } printf("thanks,byebye!\n"); fclose(fpout); return 0; }运行结果:
运行前:运行后:运行后文件夹:
知识点总结:
1.数组的应用
2.对文件的操作
3.冒泡排序的用法
学习心得:
巩固知识:
冒泡排序:n个数进行排序,使用冒泡排序的算法,应进行n-1次排序,每次排序进行n-i-1次交换(i为循环的次数)
冒泡排序是一个很好的算法,要熟练掌握这种思维,过程还有待加强!!!