首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

文件数据的排序输出有关问题,冒泡法排序,可为什么最后结果看到的还是按时间顺序的输出

2013-04-20 
文件数据的排序输出问题,冒泡法排序,可为什么最后结果看到的还是按时间顺序的输出?比如,我用文件保存了10

文件数据的排序输出问题,冒泡法排序,可为什么最后结果看到的还是按时间顺序的输出?
比如,我用文件保存了10个不同的数,现在我要它们按大小顺序输出,我用的冒泡法排序,排好序后一个for循环输出,为什么还是得不到想要的结果呢?哪里错了呢? C语言 文件操作 排序
[解决办法]
就不会先格式化一下代码吗?


void shuchu() //先排序,输出文件中的内容
{
struct ranking t; //结构体变量,与Record一样的结构体,交换用
FILE* fp = fopen("game_record", "rb+");
int i;
for (i = 0; i < 11 - 1; i++) //一共11个数,进行排序,冒泡法,但只输出前十
{
if (fread(&Record[i], sizeof(struct ranking), 1, fp) != 1)
if (feof(fp)) //判断,必须的{
fclose(fp);
return;
}
for (int j = 0; j < 11 - 1 - i; j++) { // 这里 你自己检查对不对
if (Record[j].grade < Record[j + 1].grade) {
t = Record[j];
Record[j] = Record[j + 1];
Record[j + 1] = t;
}

}
}
for (i = 0; i < 10; i++) //排序完毕,输出
printf("%s\t\t%s\t\t%d\n", Record[i].name, Record[i].name2,
Record[i].grade);
fclose(fp);
}


[解决办法]
单步调试和设断点调试是程序员必须掌握的技能之一。

热点排行