C 该程序不适用于n>;9... 当n是静态表达式时,它可以正常工作
如果我们取n>9,那么它不会输入arr[n]中n>9的元素。 如果n为常数,程序工作正常。。 程序中有什么错误。 请帮忙。。。 我编写并在windows中使用mingw shell运行它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
/* 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];