Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
粗体句子中的错误:“;下标值既不是数组也不是指针向量:("; #包括 void main() { 内角大小; int-randset; int max; int-min; int-arr[arrsize]; int i,j; 国际互换; 浮动平均值; printf(“输入数组大小:\n”); scanf(“%d”、&arrsize); printf(“输入随机集:\n”); scanf(“%d”和&randset); printf(“输入最大可能值:\n”); 扫描频率(“%d”和最大值); printf(“输入最小可能值:\n”); 扫描频率(“%d”和最小值); //分类// 对于(i=arrsize;i>0;i--) 对于(j=1;jarrsize[j])** { swap=arr[j]; arr[j]=arr[j-1]; arr[j-1]=互换; } 对于(i=0;i_C - Fatal编程技术网

粗体句子中的错误:“;下标值既不是数组也不是指针向量:("; #包括 void main() { 内角大小; int-randset; int max; int-min; int-arr[arrsize]; int i,j; 国际互换; 浮动平均值; printf(“输入数组大小:\n”); scanf(“%d”、&arrsize); printf(“输入随机集:\n”); scanf(“%d”和&randset); printf(“输入最大可能值:\n”); 扫描频率(“%d”和最大值); printf(“输入最小可能值:\n”); 扫描频率(“%d”和最小值); //分类// 对于(i=arrsize;i>0;i--) 对于(j=1;jarrsize[j])** { swap=arr[j]; arr[j]=arr[j-1]; arr[j-1]=互换; } 对于(i=0;i

粗体句子中的错误:“;下标值既不是数组也不是指针向量:("; #包括 void main() { 内角大小; int-randset; int max; int-min; int-arr[arrsize]; int i,j; 国际互换; 浮动平均值; printf(“输入数组大小:\n”); scanf(“%d”、&arrsize); printf(“输入随机集:\n”); scanf(“%d”和&randset); printf(“输入最大可能值:\n”); 扫描频率(“%d”和最大值); printf(“输入最小可能值:\n”); 扫描频率(“%d”和最小值); //分类// 对于(i=arrsize;i>0;i--) 对于(j=1;jarrsize[j])** { swap=arr[j]; arr[j]=arr[j-1]; arr[j-1]=互换; } 对于(i=0;i,c,C,你好!我把有错误的行用粗体写了出来,错误是 “下标值既不是数组也不是指针向量” 这是我的ComSci课程的一个练习:)非常感谢您的帮助!谢谢!:)您混淆了数组(arr)和它的大小(arrsize)。这个错误消息非常具有描述性-您使用下标运算符访问标量变量int arrsize只能应用于数组或指针类型 您可能想要检查j-1-th和j-th数组元素,您应该使用 if(arr[j-1]>arr[j])如果您不知道数组的大小,请使用malloc 使用int*array=malloc(arraysize*

你好!我把有错误的行用粗体写了出来,错误是 “下标值既不是数组也不是指针向量”
这是我的ComSci课程的一个练习:)非常感谢您的帮助!谢谢!:)

您混淆了数组(
arr
)和它的大小(
arrsize
)。

这个错误消息非常具有描述性-您使用下标运算符
访问标量变量
int arrsize
只能应用于数组或指针类型

您可能想要检查
j-1
-th和
j
-th数组元素,您应该使用
if(arr[j-1]>arr[j])
如果您不知道数组的大小,请使用
malloc

使用
int*array=malloc(arraysize*sizeof(int));
而不是
int数组[arraysize];

并将其置于
scanf(“%d”和&arraysize)之后;


您还需要在使用数组之前初始化它

您需要使用
arr
而不是
arrsize
,但这只是冰山一角:您的数组大小未定义,程序会在您运行时立即崩溃。您好!什么意思是它会很快崩溃?arrsize是一个输入…所以它仍然是c鲁莽?@dasblinkenlight绝对会的。你声明
arr[arrsize]
在您输入
arrsize
本身之前,因此
arr
将使用一些垃圾大小创建-无论
arrsize
变量的未初始化内存中发生了什么。哦,那么,呃……您建议我应该如何解决这个问题?我已经解决了所有问题,但当我尝试使用它时,它只是崩溃了。:)@dasblinkenlight您需要在阅读
arrsize
后声明数组。您的答案完全正确,但对OP来说并不是很有用,因为他/她可能是初学者哈哈,是的,我是CS一年级的学生。我的大学里没有人愿意帮忙(我问过至少5个人)>\u哦,哇,当我将arrsize切换到arr时,它实际上起了作用。谢谢!如果你有一个数组变量
a
和一个整数索引
I
,那么
a[I]
I[a]
在功能上不是一样的,因为它归结为
*(I+a)
*(a+i)
相反,加法是可交换的?@DuncanACoulter当然。但它与问题和我的答案无关。嗯,数组大小是用户输入,
    #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;
        }
    }