为什么我的调用int x=count(a,w,n)时不匹配

#include<stdio.h>
#include

using namespace std;
int main()
{
int a[]={2,4,5,9,7,3};
int w=10;
int n=6;
int x=count(a,w,n);
printf("%d",x);

}
void count(int a[],int w,int n)
{
int i,j,c=0;
sort(a,a+n);
for(i=0;j=n-1;i<=j)
{
if(a[i]+a[j]<w)
{
i++;
j--;
c++;
}
else if(a[i]=a[j])
{
c++;
}
else
{
j--;
c++;
}
}
}

count() 这个函数的返回类型是 void,而 x 的类型是 int,自然不匹配

按代码逻辑大致修改如下,供参考:

#include <stdio.h>
#include <algorithm.h>
using namespace std;
int count(int a[],int w,int n); //修改
int main()
{
    int a[]={2,4,5,9,7,3};
    int w=10;
    int n=6;
    int x=count(a,w,n);
    printf("%d",x);
    return 0;
}
int count(int a[],int w,int n) //void count(int a[],int w,int n)
{
    int i,j,c=0;
    sort(a,a+n);
    for(i=0,j=n-1;i<=j;) //for(i=0;j=n-1;i<=j) 修改
    {
        if(a[i]+a[j]<w)
        {
           i++;
           j--;
           c++;
        }
        else if(a[i]==a[j]) //else if(a[i]=a[j]) 修改
        {
           c++;
        }
        else
        {
           j--;
           c++;
        }
    }
    return c;    //修改
}