问题描述:
https://blog.csdn.net/sxhelijian/article/details/45342659
从文件
salary.txt
中读入工人的工资(不超过500人),全部增加20%(好事),然后对工资数据进行排序,将排序后的结果保存到文件ordered_salary.txt中。
#include "stdafx.h"
#include "stdlib.h"
#define size 500
#pragma warning (disable :4996)
int main()
{
FILE *fp;
fp = fopen("D://code//salary.txt", "r");
if (fp == NULL)
{
printf("file not found.");
exit(0);
}
double salary[size];
int i(0);
while ( fscanf(fp, "%lf", &salary[i]) ==1)
{
i++;
}
fclose(fp);
printf("测试salary[0]:%.2lf\n\n", salary[0]);
double med;
for (int x = 0; x < i-1; x++) //bubblesort
{
for (int y = 0; y < i-1-x; y++)
{
if ( salary[y]>salary[y+1] )
{
med = salary[y+1];
salary[y + 1] = salary[y];
salary[y] = med;
}
}
}
fp = fopen("D://code//ordered_salary.txt", "w");
if (fp == NULL)
{
printf("file not found.");
exit(0);
}
for (int j = 0; j < i; j++)
{
fprintf(fp, "%.2lf\n", 1.2*salary[j]);
}
fclose(fp);
return 0;
}
感想:
for (int x = 0; x < i-1; x++)
第一层循环,每循环一次都会将数组中最大数排到最后
=
转载于:https://www.cnblogs.com/miyazakehime/p/9321937.html