-1
    #include <stdio.h>

    void main()
    {

        int arrsize;
        int randset;
        int max;
        int min;
        int arr[arrsize];
        int i, j;
        int swap;
        float mean;

        printf("Input array size:\n");
        scanf("%d", &arrsize);

        printf("Input random set:\n");
        scanf("%d", &randset);

        printf("Input maximum possible value:\n");
        scanf("%d", &max);

        printf("Input minimum possible value:\n");
        scanf("%d", &min);

        // SORTING //

        for (i = arrsize; i > 0; i--)
            for(j = 1 ; j < i ; j++)

// Subscripted value is neither array nor pointer vector  //

                **if(arrsize[j-1] > arrsize[j])**
                {
                    swap        = arr[j];
                    arr[j]      = arr[j-1];
                    arr[j-1]    = swap;
                }   

        for (i=0; i < arrsize; i++)
            printf("%d", arr[i]);
        printf("\n\n");

        // MEAN //

        for(i = 0 ; i < arrsize ; i ++)
        {   
//Subscripted value is neither array nor pointer vector //
            **mean += arrsize[i];**
            mean/= arrsize;

            printf("The mean is %.2lf\n\n", mean);
        }

        // MEDIAN //


        if(arrsize%2 == 0)
            {
                printf("The median is %.2lf", (float)(arr[arrsize/2 -1] + arr[arrsize/2]);
            }
            else
            {
                printf("The median is %d", arr [arrsize/2]);
                printf("\n\n\n");
            }

            printf("The midrange is %.2lf\n\n", (float)(arr[0] + arr[arrsize - 1] / 2); 

    }


    void fillintarray(int myarray [], int arrsize, int min, int max, unsigned int randset)
    {
        int iter;
        srand (randset);
        for (iter =0 ; iter < arrsize ; iter++)
        {
            myarray[iter] = rand() % (max - min + 1) + min;
        }
    }

やあ!エラーがあった行を太字にすると、エラーは「添字付きの値は配列でもポインター ベクトルでもありません」でした。これは、私の ComSci クラスの演習です :) ありがとう!:)

4

3 に答える 3

0

array のサイズがわからない場合は、 を使用しますmalloc

の代わりに使用int *array = malloc(arraysize * sizeof(int)); int array[arraysize];

そして、それを後に置きますscanf("%d",&arraysize);

また、使用する前に配列を初期化する必要があります。

于 2013-08-03T11:06:45.840 に答える
0

array( arr) とその size( ) を混同していますarrsize

于 2013-08-03T11:00:31.990 に答える
0

まあ、エラーメッセージはかなり説明的です-配列またはポインター型にのみ適用できるint arrsize添え字演算子でスカラー変数にアクセスしています。[]

j-1おそらく-th とj-th の配列要素 をチェックしたいでしょう。if (arr[j-1] > arr[j])

于 2013-08-03T11:01:37.190 に答える