C语言动态内存分配-文件读写设计

1、输入N
2、申请存放N个整数的内存
3、用100以内的随机数填充内存
4、将N个数写入文件
5、将文件中的N个数读入内存
6、对N个数排序
7、将排序后的N个数写入另一个文件

申请内存用 a = (int *)malloc(sizeof(int)*n);
写入文件 FILE *fp = fopen("./result.txt", "w");
for(i=0;i<n;i++)
{
fprintf(fp,"%d ",a[i]);
}

你题目的解答代码如下:

#include<stdio.h>
#include<stdlib.h>
#include <time.h>
void sort(int a[],int n)
{
    int i,j;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-i-1;j++)
            if(a[j] > a[j+1])
            {
                int t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
}

int main()
{
    int n,*a,i;
    scanf("%d", &n);
    srand((unsigned)time(NULL));
    a = (int *)malloc(sizeof(int)*n);
    for(i=0;i<n;i++)
    {
        a[i] = rand()%100;
    }
    FILE *fp;
    fp = fopen("./result.txt", "w");
    for(i=0;i<n;i++)
    {
        fprintf(fp,"%d ",a[i]);
    }
    fclose(fp);
    fp = fopen("./result.txt", "r");
    for(i=0;i<n;i++)
    {
        scanf(fp,"%d",a[i]);
        printf("%d ",a[i]);
    }
    fclose(fp);
    printf("\n");
    sort(a,n);
    fp = fopen("./result2.txt", "w");
    for(i=0;i<n;i++)
    {
        fprintf(fp,"%d ",a[i]);
        printf("%d ",a[i]);
    }
    fclose(fp);
    printf("\n");
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img