首页 > 解决方案 > 在 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

标签: c

解决方案


推荐阅读