编写一个C程序,从附带的数据文件中读入整数,并使用插入排序将排序后的数据存储到数组中

编写一个C程序,从附带的数据文件中读入整数,并使用插入排序将排序后的数据存储到数组中,c,arrays,selection-sort,C,Arrays,Selection Sort,编写一个C程序,实现一个简单的基于数组的插入排序。 您的程序必须从附带的数据文件中读入整数 并使用插入排序将排序后的数据存储到数组中。如果你 必须在两个现有值之间插入一个元素,然后还必须 移动(或移位)元素索引>=索引的所有元素 要插入新元素的位置。请注意,您可以找到 教科书和幻灯片中的插入排序算法 这是文本文件中的整数。INT在彼此下方,而不是此处显示的方式: 879 646 80 385 741 57 370 240 111 400 262 678 951 506 720 508 792 8

编写一个C程序,实现一个简单的基于数组的插入排序。 您的程序必须从附带的数据文件中读入整数 并使用插入排序将排序后的数据存储到数组中。如果你 必须在两个现有值之间插入一个元素,然后还必须 移动(或移位)元素索引>=索引的所有元素 要插入新元素的位置。请注意,您可以找到 教科书和幻灯片中的插入排序算法

这是文本文件中的整数。INT在彼此下方,而不是此处显示的方式: 879 646 80 385 741 57 370 240 111 400 262 678 951 506 720 508 792 863 677 864 70 5. 591 440 989 478 867 636 278 827 692 243 806 676 158 550 425 226 783 129 876 714 125 721 164 555 730 146 596 947 174 837 48 589 808 868 694 677 379 62 580 165 956 139 215 14 45 552 98 154 702 661 997 825 363 782 229 915 281 397 295 219 231 476 253 22 873 504 653 698 772 184 453 508 977 863 624 947 104 926

这就是我现在的代码。我正在按顺序获取地址,但现在是文件中的整数。当我注释掉insertionSort函数时,数字可以很好地打印出来,但显然不是按顺序打印的。我做错了什么

#include <stdio.h>
#include<stdio.h>

void insertionSort(int *, int);

int main()
{
    int i,num,array[1000];

    FILE *fp = fopen("data_a5.txt","r");

    fscanf(fp,"%d",&num); 

    if(fp== NULL)
    {
        printf("Error reading File!\n");
        return;
    }  

    while(!feof(fp))
    { 
        fscanf(fp,"%d", &array[num]);
        //printf("%d\n", array[num]);
    }

    insertionSort(array,num);

    for(i=0;i<num;i++)
        printf("%d\n",&array[i]);

    fclose(fp);

    return 0;
}

void insertionSort(int *value, int size)
{
    int i,j,temp;

    for(i = 0; i <= size; i++)
    {
        for(j = i; j >= 0; j--)
        {
            if(value[j+1]<value[j])
            {
                temp=value[j+1];
                value[j+1]=value[j];
                value[j]=temp;
            }
            else
                break;
        }
    }
}
#包括
#包括
void insertionSort(int*,int);
int main()
{
int i,num,数组[1000];
文件*fp=fopen(“data_a5.txt”,“r”);
fscanf(fp、%d、&num);
如果(fp==NULL)
{
printf(“读取文件时出错!\n”);
返回;
}  
而(!feof(fp))
{ 
fscanf(fp、%d、&array[num]);
//printf(“%d\n”,数组[num]);
}
insertionSort(数组,num);

对于(i=0;i如果您的任务是在插入项目时对数组进行排序(即“活动”),那么最好使用链接结构

例如:

struct myinst
{
  int mynum;
  struct myinst *prev;
  struct myinst *next;
};
有很多例子,这里有一个:


插入新项目以对数组/链表进行排序时,请浏览链表,找到最靠近新项目的项目,然后通过创建新内存来执行插入操作,更改现有项目中的上一个/下一个地址,使其指向新项目。

请正确格式化代码。这是不可读的。和如果你删除所有的空白行并正确地缩进代码,这样人们就可以阅读它。1。你不应该使用<代码> FEOF<代码>来检查文件的结尾。2。<代码> FSCANF(FP,“%D”,和数组[NUM])
您正在将所有数据写入同一个数组单元格。请阅读和。然后是您的问题,即
输入
预期输出
,以及您已经完成的操作-最后一件事实际上还可以。这听起来更像是一个注释,而不是答案