用VC直接创建了一个.cpp文件,为什么编译提示错误说我的函数找不到?
error C2065: 'sort' : undeclared identifier
function-style initializer appears to be a function definition#include <stdio.h>
main()
{
int *p,i,a[10];
    p=a;
for(i=0;i<10;i++)
scanf("%d",p++);
p=a;
sort(p,10);
for (p=a,i=0;i<10;i++)
{
printf("%d",*p);
p++; }}int x[],n;
sort(x,n)
{ int i,j,k,t;
for (i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k])  k=j;
if(k!=i)
{t=x[i];x[i]=x[k];x[k]=t;}
}
}

解决方案 »

  1.   

    你的sort函数定义在main的后面,main编译时,找不到它内部需要的sort函数。
    一种是将sort函数在main前申明,一种是将sort函数放在main之前。
      

  2.   

    楼上正解!!!你引用的函数(sort)都还在本函数后面,当然找不到啦。
      

  3.   

    把sort函数定义在main前面,或者在main前面申明一下sort函数,否则main找不到
      

  4.   

    改成main之前还是不行
    #include <stdio.h>int x[],n;
    sort(x,n)
    { int i,j,k,t;
    for (i=0;i<n-1;i++)
    {
    k=i;
    for(j=i+1;j<n;j++)
    if(x[j]>x[k])  k=j;
    if(k!=i)
    {t=x[i];x[i]=x[k];x[k]=t;}
    }
    }main()
    {
    int *p,i,a[10];
        p=a;
    for(i=0;i<10;i++)
    scanf("%d",p++);
    p=a;
    sort(p,10);
    for (p=a,i=0;i<10;i++)
    {
    printf("%d",*p);
    p++; }}
      

  5.   

    sort(x,n)代码中指针,数组逻辑错误。
      

  6.   

    还是一样的错误提示:
    error C2065: 'sort' : undeclared identifier
      

  7.   


    不知你哪学来的语法,应该这样定义函数的
    void sort(int *x,int n)
    { int i,j,k,t;
    for (i=0;i<n-1;i++)
    {
    k=i;
    for(j=i+1;j<n;j++)
    if(x[j]>x[k])  k=j;
    if(k!=i)
    {t=x[i];x[i]=x[k];x[k]=t;}
    }
    }