数组分配动态内存

 

#include<stdlib.h>
#include<stdio.h>
int main(void)
{
    int n,i;
    int *p;
    printf("请输入序列个数:");
    scanf("%d",&n);
    p = (int*) malloc(sizeof(int)*n);//开辟动态内存区,将地址转换成int *型,然后在放在p1中。
    printf("请输入序列数值:");
    for(i=0;i<n;i++)
    {
        scanf("%d",p+i);    
    }
    printf("输入原序列数为:");
    for(i=0;i<n;i++)
    {
        printf("%d ",*(p+i));    
    }
    printf("\n");
    free(p);
    system("pause");
    return 0;
}

 

 

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

void BubbleSortSmallToBig(int *array, int len);
void CheckArrSum(int *array,int len);
int main(void)
{
    int n,i;
    int *p;
    printf("请输入序列个数:");
    scanf("%d",&n);
    p = (int*) malloc(sizeof(int)*n);//开辟动态内存区,将地址转换成int *型,然后在放在p1中。
    printf("请输入序列数值:");
    for(i=0;i<n;i++)
    {
        scanf("%d",p+i);    
    }
    printf("输入原序列数为:");
    for(i=0;i<n;i++)
    {
        printf("%d ",p[i]);//    *(p+i)
    }
    printf("\n");
    BubbleSortSmallToBig(p, n);
    printf("从小到大排列为:");
    for(i=0;i<n;i++)
    {
        printf("%d ",*(p+i));//    *(p+i)
    }
    printf("\n");
    CheckArrSum(p,n);
    free(p);  //释放内存(free),否则会造成内存泄露.
    printf("释放内存%d\n",*p);
    system("pause");
    return 0;
}

void BubbleSortSmallToBig(int *array, int len)
{
    int j,t,temp;
    for(j=0;j<len;j++)
    {
        for(t=len-1;t>j;t--)
        {
            if(array[t]<array[t-1])
            {
                temp=array[t];
                array[t]=array[t-1];
                array[t-1]=temp;
            }
        }
    }
}

void CheckArrSum(int *array,int len)
{
    int j=0,temp=0,sum=0;
    while(j!=len)
    {
        temp = array[j];
        while(temp==array[j])
        {
            sum++;
            j++;
        }
        printf("序列中数值%d出现%d次\n",temp,sum);
        sum = 0;
    }

}

 

posted @ 2021-01-19 23:10  星空下聆听  阅读(185)  评论(0编辑  收藏  举报