c - 在 C 代码中对未排序文本文件的输出进行排序
问题描述
我很困惑为什么它不能很好地工作。类似的功能在程序上完美运行,但这不起作用。我犯错的重点是什么?我想通过文本文件中的 NDist 对列表进行排序。我问过我的讲师,但她没有回复我的信息。请帮我完成任务。
struct sortD
{
char supply[50], SCode[5], Cdonator[50];
int IDd;
double NDist;
}mp[300];
void sortD()
{
struct sortD rmp;
int v=0, size1, q;
char f;
FILE * fpp = fopen("dist.txt", "r");
if (fpp == NULL)
{
printf ("\nCan not open file.\n");
return;
}
while (f != EOF)
{
fscanf (fpp, "%d %s %s %s %lf",&mp[v].IDd, mp[v].supply, mp[v].SCode, mp[v].Cdonator, &mp[v].NDist);
f = fgetc(fpp);
v++;
}
size1=v-1;
//Bubble sort
for (v=0;v<size1;++v){
for (q=0;q<size1 - v;q++){
if (mp[q+1].NDist > mp[q].NDist)
{
rmp=mp[q];
mp[q]=mp[q+1];
mp[q+1]=rmp;
}
}
}
for (v=0;v<size1+1;v++){
printf ("ID: %d Name of Supply: %s, Supply Code: %s, Donator: %s, Number Donated (Million): %lf\n", mp[v].IDd, mp[v].supply, mp[v].SCode,mp[v].Cdonator, mp[v].NDist);
}
}
结果:
ID: 1 Name of Supply: ContaclessThermometer, Supply Code: CT, Donator: Japan, Number Donated (Million): 1.000000
ID: 4 Name of Supply: .000000, Supply Code: 2, Donator: HandSanitizer, Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 1 Name of Supply: 3.500000, Supply Code: 3, Donator: FaceMask, Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 2 Name of Supply: 120.000000, Supply Code: 4, Donator: SurgicaMask, Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 2 Name of Supply: 38.000000, Supply Code: 1, Donator: ContaclessThermometer, Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 4 Name of Supply: .000000, Supply Code: 2, Donator: HandSanitizer, Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 3 Name of Supply: .500000, Supply Code: 3, Donator: FaceMask, Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 120 Name of Supply: .000000, Supply Code: 4, Donator: SurgicaMask, Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 38 Name of Supply: .000000, Supply Code: 5, Donator: OxygeonMask, Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 0 Name of Supply: , Supply Code: , Donator: , Number Donated (Million): 0.000000
ID: 9 Name of Supply: .000000, Supply Code: , Donator: , Number Donated (Million): 0.000000
解决方案
推荐阅读
- javascript - 使用 $('body').text() 时如何在元素之间添加空格?
- python - SyntaxError 文件“import.py”,第 14 行
- jquery - jQuery 数据表导出到带有 cell() 背景颜色的 excel
- android - 如何在 react-native git 项目中使用乘法项目实例处理乘法 .git 文件夹
- ffmpeg - 连接一个基本 mp4 文件 + 一堆 MP4 文件时出现 FFmpeg 错误\
- sql - 按任一列分组的 SQL 总和
- angular - 触发电子邮件谷歌 Firestore 扩展
- typescript - TypeError: seamless immutable _1.default is not a function - React native jest unit testing (Typescript)
- java - 为什么 ORB 找不到关键点
- android - 如何强制 NSD Android 使用本地网络,而不是移动网络