½ÌѧĿµÄ£º ÕÆÎÕ¶þάÊý×éµÄʵÏÖ·½·¨
½ÌÑ§ÖØµã£º ¶þάÊý×éµÄ´æ´¢±íʾ,¶þάÊý×éµÄ»ù±¾²Ù×÷ Z:Fuk7`(Bz4t 4,=W| [ ±¾ ×Ê ÁÏ À´ Ô´ ÓÚ ¹ó ÖÝ Ñ§ ϰ Íø ITÈÏ֤ȫ¹ú¼ÆËã»úµÈ¼¶¿¼ÊÔ http://Www.gzU521.com ] Z:Fuk7`(Bz4t 4,=W|
½ÌѧÄѵ㣺 ¶þάÊý×éµÄ»ù±¾²Ù×÷
ÊÚ¿ÎÄÚÈÝ£º
Êý×éµÄ˳Ðò´æ´¢±íʾºÍʵÏÖ:
#include<stdarg.h>
#define max_array_dim 8
typedef struct {
elemtype *base;
int dim;
int *bounds;
int *constants;
}array;
status initarray(array &a,int dim,...);
status destroyarray(array &a);
status value(array a,elemtype &e,...);
status assign(array &a,elemtype e,...);
»ù±¾²Ù×÷µÄËã·¨ÃèÊö:
status initarray(array &a,int dim,...){
if(dim<1||dim>max_array_dim) return error;
a.dim=dim;)e$f$GxR%KrK=C€R[ ´ËÎÄתÌùÓÚÎÒµÄÑ§Ï°ÍøITÈÏ֤ȫ¹ú¼ÆËã»úµÈ¼¶¿¼ÊÔ http://www.Gzu521.com])e$f$GxR%KrK=C€R
a.bounds=(int *)malloc(dim *sizeof(int));
if(!a.bounds) exit(overflow);
elemtotal=1;
va_start(ap,dim);
for(i=1;i<dim;++i){
a.bounds[i]=va_arg(ap,int);
if(a.bounds[i]<0) return underflow;
elemtotal*=a.bounds[i];
}
va_end(ap);
a.base=(elemtype *)malloc(elemtotal*sizeof(elemtype));
if(!a.base) exit(overflow);
a.constants=(int *)malloc(dim*sizeof(int));
if(!a.constants) exit(overflow);
a.constants[dim-1]=1;
for(i=dim-2;i>=0;--i)
a.constants[i]=a.bounds[i+1]*a.constants[i+1];
return ok;
}
status destoyarray(array &a){
if(!a.base) return error;
free(a.base); a.base=null;
if !(a.bounds) return error;