匿名
匿名 發問於 電腦與網際網路程式設計 · 2 月前

想請問用C語言,陣列的大小不能固定,要依輸入值的個數決定陣列大小,輸入完之後,將A陣列複製到B陣列(一維陣列就好)的程式,固定的陣列大小我可以,但陣列大小不固定我就不知道了。?

2 個解答

評分
  • ?
    Lv 7
    2 月前

    array沒有大小不能建立,大的array不能抄進小的,這個你知道的,抄時檢查大小

  • 2 月前

    #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;

    }

還有問題嗎?立即提問即可得到解答。