在C中按组排序数据时遇到问题

在C中按组排序数据时遇到问题,c,C,这是我的一些代码,它应该从J,S,然后M排序,但我的代码只打印最后一个值。我也需要清洁它,但我能做到。我只需要帮助按组对其进行排序,以便正确打印。 每当我尝试打印它时,它只打印所有位置的70072890.58 J void sortData(int* id, double* amt, char* desig, int Size) { if(Size<=13) { int i; int j; double tempAmt;

这是我的一些代码,它应该从J,S,然后M排序,但我的代码只打印最后一个值。我也需要清洁它,但我能做到。我只需要帮助按组对其进行排序,以便正确打印。 每当我尝试打印它时,它只打印所有位置的70072890.58 J

void sortData(int* id, double* amt, char* desig, int Size)
{
    if(Size<=13)
    {
        int i;
        int j;
        double tempAmt;
        int tempId;
    char tempDesig;
    int check=-1;
    for(i=0;i<2;i++)
    {
        for(j=0;j<Size;j++)
        {
            if(i==0)
            {
                if(*(desig+j)=='J')
                {
                    tempDesig= *(desig+j);
                    tempId= *(id+j);
                    tempAmt= *(amt+j);
                    check++;
                }
            }
            if(i==1)
            { 
                if(*(desig+j)=='S')
                {
                    tempDesig= *(desig+j);
                    tempId= *(id+j);
                    tempAmt= *(amt+j);
                    check++;
                }
            }
            *(desig+j)= *(desig+check);
            *(desig+check)= tempDesig;
            *(amt+j) = *(amt+check);
            *(amt+check)= tempAmt;
            *(id+j)= *(id+check);
            *(id+check)=tempId;
        }
    }
}
else{
    printf("Number of records cant be more than 13\n");
}
}
这就是它应该看起来的样子

ACCOUNTS         AMOUNTS         DESIGNATION
  7007            2890.58              J
  5005            3000.00              J
  3003            4000.00              S
  4004            5000.00              S
  6116            4599.91              S
  2002            2000.43              M
  1001            1591.63              M
  2112            3112.67              M
无效排序_数据(int*、double*、char*、int): int*-包含所有有效帐户ID的整数指针 double*-包含所有相应有效金额的双指针 char*-包含所有相应有效名称的字符指针 int–有效记录数(请记住,这不能再是13)


现在,您需要根据名称对它们进行分组,第一组必须有初级组(J),然后第二组必须有高级组(S),最后一组必须是高级组(M)。请记住,您不是按升序或降序排序,而是按组排序。分组时交换指定的位置时,请确保分组后帐户ID和金额也匹配

欢迎来到堆栈溢出!听起来您可能需要学习如何使用a来逐步完成代码。有了一个好的调试器,您可以逐行执行您的程序,并查看它偏离预期的地方。这是一个必要的工具,如果你要做任何编程。进一步阅读:。解决方案可以使用结构吗?不,我们还没有了解结构。无数组表示法所有指针表示法排序将经过数组末尾1。比较需要在大小之前停止1。您的交换位置似乎也偏离了1,并且会随机进行,但如果没有调试,我不能确定。我认为需要的是一些逻辑,只有在您实际找到“J”或“S”时才进行交换。然后您还需要一个案例来分组“M”。欢迎使用堆栈溢出!听起来您可能需要学习如何使用a来逐步完成代码。有了一个好的调试器,您可以逐行执行您的程序,并查看它偏离预期的地方。这是一个必要的工具,如果你要做任何编程。进一步阅读:。解决方案可以使用结构吗?不,我们还没有了解结构。无数组表示法所有指针表示法排序将经过数组末尾1。比较需要在大小之前停止1。您的交换位置似乎也偏离了1,并且会随机进行,但如果没有调试,我不能确定。我认为需要的是一些逻辑,只有在您实际找到“J”或“S”时才进行交换。然后你也需要一个案例来分组“M”。
ACCOUNTS         AMOUNTS         DESIGNATION
  7007            2890.58              J
  5005            3000.00              J
  3003            4000.00              S
  4004            5000.00              S
  6116            4599.91              S
  2002            2000.43              M
  1001            1591.63              M
  2112            3112.67              M