想請問用C語言,陣列的大小不能固定,要依輸入值的個數決定陣列大小,輸入完之後,將A陣列複製到B陣列(一維陣列就好)的程式,固定的陣列大小我可以,但陣列大小不固定我就不知道了。?
2 個解答
- prisoner26535Lv 72 月前
#include<stdio.h>
#include<stdlib.h>
#define TYPE int
void copyArray(
TYPE* to,
TYPE* from,
size_t sz
){
int i;
for(i=sz-1;0<=i;--i)*(to++) = *(from++);
return;
}
void printArray(
TYPE*arr,
size_t size
){
size_t sz;
for(sz=0; sz<size && printf("%d ", arr[sz]); ++sz);
printf("\n");
return;
}
int main(){
size_t sz;
int *arr0, *arr1;
int i;
for(sz=0; printf("Enter the size of the arrays (0 to stop): ")
&& scanf("%ld", &sz)
&& 0 < sz
&& NULL != (arr0 = malloc(sz*sizeof(TYPE)))
&& NULL != (arr1 = malloc(sz*sizeof(TYPE)))
; free(arr0), arr0=NULL
, free(arr1), arr1=NULL
){
for(i=0; i<sz
&& printf("give me the %dth number: ", i)
&& scanf("%d", &arr0[i])
; ++i);
copyArray(arr1, arr0, i);
printf("Your array: "); printArray(arr0, sz);
printf("my array: "); printArray(arr1, sz);
}
if(NULL != arr0) free(arr0), arr0=NULL;
if(NULL != arr1) free(arr1), arr1=NULL;
return 0;
}