这里第15行代码出了问题,[Error] expected primary-expression before 'int',不理解是什么意思
#include<stdio.h>
void Quicksort(int arry[],int L,int R);
int main(void)
{
int n,i;
printf("请输入要排序的个数n:");
scanf("%d",&n);
int arry[n];
for(i = 0;i < n;i++)
{
printf("请输入第%d个数:",i+1);
scanf("%d",&arry[i]);
}
Quicksort(int arry[],0,n-1);
for(i = 0;i < n;i++)
{
printf("%d\t",arry[i]);
}
return 0;
}
void Quicksort(int arry[],int L,int R)
{
if(L>=R)
{
return;
}
int left=L,right=R;
int pivot = arry[left];
while(left<right)
{
while(left<right&&arry[right]>=pivot)
{
right--;
}
if(left<right)
{
arry[left]=arry[right];
}
while(left<right&&arry[left]<=pivot)
{
left++;
}
if(left<right)
{
arry[right]=arry[left];
}
if(left>=right)
{
arry[left]=pivot;
}
Quicksort(arry,L,right-1);
Quicksort(arry,right+1,R);
}
}
第16行:Quicksort(int arry[],0,n-1); 应为: Quicksort(arry,0,n-1);
Quicksort(int arry[],0,n-1);
->
Quicksort(arry,0,n-1);
这个错误的具体含义是"expected primary-expression before 'int'",意思是在第15行的代码中,编译器预期一个主表达式(primary expression),但是却遇到了'int'这个关键字。
出现这个错误的原因是,'int'是C语言的关键字,用于声明整型变量。在代码中,你将一个变量名命名为'int',这与C语言的关键字冲突了,导致编译器无法正确解析。
为了解决这个错误,你可以修改第15行的变量名,避开关键字的冲突。例如:
#include <stdio.h>
int main() {
int number = 10;
int myInt = 20;
printf("Number: %d\n", number);
printf("Integer: %d\n", myInt);
return 0;
}
在这个示例中,将变量名改为'myInt',避免了与关键字冲突,就可以修复这个错误了。
希望这个解答对你有帮助!如有疑问,请随时追问。