编程循环实现:提示用户输入数组大小,用malloc函数分配内存空间储存用户输入的数组元素,排序后输出,最后用free函数清除内存。当用户输入数组大小为0时退出程序

如题,要求排序输出后,数组的元素数据类型为保留两位的小数,补充:程序不断循环输入输出,直到输入数组大小为0时停止

一个简单的实现:


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

int main(void){
    
    double * num;
    int  len;
    
    printf("请输入数组大小(输入0退出):");
    scanf("%d",&len);
    while(len>0){
        num = (double *) malloc((sizeof (double))*len);
    
        int i;
        printf("请输入数组的%d个元素:\n",len); 
        for(i=0;i<len;i++){
            scanf("%lf",&num[i]);
        } 
        
        //排序数组 
        int j;
        double temp;
        for(i=0;i<len-1;i++){
            for(j=i+1;j<len;j++){
                if(num[i]>num[j]){
                    temp=num[i];
                    num[i] =num[j];
                    num[j] = temp;
                }
            }
        }
        
        //打印数组 
        for(i=0;i<len;i++){
            printf("%.2lf ",num[i]);
        }
        printf("\n");
        
        //释放 内存 
        free(num);
        printf("请输入数组大小(输入0退出):");
        scanf("%d",&len);
    }

    
    return 0;
}