When I compile this C program, I get an error:
In function `main': maxcount.cpp:(.text+0x63): undefined reference to `cnt(int)'
collect2: error: ld returned 1 exit status
What does it mean? Here is the code:
#include<iostream>
using namespace std;
int cnt(int);
int main()
{
int x[30],i,j,q;
cout<<"enter x[i]";
for(i=0;i<7;i++)
{
cin>>x[i];
}
q = cnt(x[30]);
}
int cnt(int x[30])
{
int i,j;
int max=x[0];
int count=0;
for(i=0;i<7;i++)
{
if(x[i]>max)
{
max=x[i];
}
else
{
max=x[0];
}
}
for(i=0;i<7;i++)
{
if(max==x[i])
{
count++;
}
}
cout<<count;
return 0;
}
It means that it can not find a definition for
int cnt(int);, whichmain()uses and you forward declare.Instead, you define:
These are two different signatures. One takes an integer argument, and the other takes an array of integers.
Additionally, this statement is incorrect:
This takes the 31st element at index 30 from the
xarray. However,xis only declared to be of size 30. Since you are usingxas an array inside your function, you probably just want to change your forward declaration to:And then invoke it like this: