Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
C 该程序不适用于n>;9... 当n是静态表达式时,它可以正常工作_C_Arrays - Fatal编程技术网

C 该程序不适用于n>;9... 当n是静态表达式时,它可以正常工作

C 该程序不适用于n>;9... 当n是静态表达式时,它可以正常工作,c,arrays,C,Arrays,如果我们取n>9,那么它不会输入arr[n]中n>9的元素。 如果n为常数,程序工作正常。。 程序中有什么错误。 请帮忙。。。 我编写并在windows中使用mingw shell运行它 /* Binary Search Program */ #include<stdio.h> #include<stdlib.h> int main() { int n,arr[n],i,j,temp; printf("Enter The number of elem

如果我们取n>9,那么它不会输入arr[n]中n>9的元素。 如果n为常数,程序工作正常。。 程序中有什么错误。 请帮忙。。。 我编写并在windows中使用mingw shell运行它

/* Binary Search Program */

#include<stdio.h>
#include<stdlib.h>


int main()
{
    int n,arr[n],i,j,temp;
    printf("Enter The number of elements in array : ");
    scanf("%d",&n);
    printf("Enter the %d elements of array :\n",n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }

    printf("The Unsorted array is :\n");
    for(i=0;i<n;i++)
    {
        printf("%d\n",arr[i]);
    }
    /* BOUBBLE SORTING */

    for(j=0;j<n-1;j++)
    {
        for(i=0;i<n-1-j;i++)
        {
            if(arr[i]>arr[i+1])
            {
                temp=arr[i+1];
                arr[i+1]=arr[i];
                arr[i]=temp;
            }
        }
    }
    printf("The sorted array is :\n");
    for(i=0;i<n;i++)
    {
        printf("%d\n",arr[i]);
    }

    return 0;
}
/*二进制搜索程序*/
#包括
#包括
int main()
{
int n,arr[n],i,j,temp;
printf(“输入数组中的元素数:”);
scanf(“%d”和“&n”);
printf(“输入数组的%d个元素:\n”,n);
对于(i=0;i
arr
的大小有一个不确定的值,因为
n
未初始化


在您的
scanf(“%d”和&n)
调用之后声明
arr

您使用的是可变长度数组。在运行时,当您在输入
n
之前声明
arr[n]
时,编译器不知道
n
。在输入
n
之后必须声明
arr

试试这个

int n,i,j,temp;
printf("Enter The number of elements in array : ");
scanf("%d",&n);
int arr[n];  

在新块的开头,在
scanf(“%d”,&n);
下声明数组arr,或者使用
n*sizeof(int)
字节分配内存,我不确定这在C中是否有效,因为您只能在块的开头声明一个新变量。@Zaffy;C99允许混合类型声明。@haccks哦,我明白了,太好了!
int n,i,j,temp;
printf("Enter The number of elements in array : ");
scanf("%d",&n);
int arr[n];