题目描述:
编写程序,输入整数n,动态分配保存n个整数的存储器,然后输入n个整数保存到存储器中。最后,将这n个整数从小到大输出。 例如: 输入如下: 10回车 10 9 8 7 6 5 4 3 2 1回车 则输出 1,2,3,4,5,6,7,8,9,10
参考代码:
#include<stdio.h>
#include<stdlib.h>
#define SWAP(a,b) {a=a+b; b=a-b; a=a-b;}
int main()
{int n,*a,i,j;scanf("%d",&n);a=(int *)malloc(sizeof(int)*n);for(i=0;i<n;scanf("%d",a+i++));for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if(a[j]>a[j+1])SWAP(a[j],a[j+1]);for(i=0;i<n;printf(i==n?"%d\n":"%d,",a[i++]));free(a);return 0;
}
讲解:
动态内存分配优点:节省资源,效率高。
详情百度malloc(),calloc(),free()函数。
求实求真,大气大为。