#include<stdio.h>
void functt(int *,int );
int main {
int n;
scanf("%d",&n);
printf("Enter the elements of the array");
int i;
int arr[n];
int *ptr;
ptr=arr;
for (i=0;i<n;i++)
{
scanf("%d",(p+i));
}
printf("The array elemets are as follows");
for (i=0;i<n;i++)
{
printf("%d",*(p+i));
}
void functt(arr,n);
return 0;
}
void functt(int *,int n)
{
int i,j,min;
for (i=0;i<n;i++)
{
min=i;
for (j=i+1;j<n;j++)
{
if(*(p+min)>*(p+j))
{
min=j;
}
}
int temp=*(p+min);
*(p+min)=*(p+j);
*(p+j)=temp;
}
错误: https://i.stack.imgur.com/T2iLq.png
由于这些错误而无法运行此代码程序是通过指针和功能使用选择排序。我认为是正确的逻辑问题,但上面给出的PNG却给出了一些错误。
这里有很多错误。您已将数组指针命名为ptr,但随后尝试使用一个名为“ p”的指针。您在某些地方缺少括号。如果您对代码进行了很好的布局,则这些错误将更容易发现。我已经修复了您代码中的编译错误,并重新排列了排序功能。
注意:我所做的更改很小,希望您能看到我的所作所为。这不一定是编写此代码的最佳方法。