一维动态数组的实现(c语言)
编程输入一个班的某课程的学生成绩,计算其平均分,然后输出。班级人数由键盘输入。
#include <stdio.h>
#include <stdlib.h>
main()
{
int *p = NULL,i,n,sum;
printf("Please enter array numbers: ");
scanf("%d",&n);
p = (int*)malloc(sizeof(int)*n);
if(p==NULL)
{
printf("No enough memory !
");
exit(0);
}
printf("Please input %d scores:",n);
for (i=0;i<n;i++)
{
scanf("%d",p+i);
}
sum = 0;
for (i =0;i<n;i++)
{
sum = sum + *(p+i);
}
printf("aver = %d
",sum/n);
free(p);
}
注意的是最后有个内存释放。还有就是因为堆空间是有限的,所以动态分配内存后,必须检查函数malloc()的返回值,确保使用前不是NULL,即非空指针,任何空指针均意味着它不指向任何对象,不应该使用它。如果使用空指针则可能会导致程序瘫痪。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。