请高手帮忙!多谢
请高手帮忙!!!谢谢
一个a.h文件
#ifndef _GLOBAL_H_
#define _GLOBAL_H_
#include <stdio.h>
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
struct link
{
double value;
link* next;
};
//--------------------------------全局变量---------------------------------------//
link * head[2];
double average_val;
//-------------------------------------------//
double average(link* nod,double counter);
double deviation(link* nod,double counter);
bool addnode(link* nod,double val);
bool removenode(link* nod,double val);
link *nextnode(double val);
link *priornode(double val);
void print();
#endif
一个b.cpp文件实现了a.h中的函数,
#include "global.h "
using namespace std;
double average(link* nod,double counter)
{
double sum=0;
for(link* p=nod;p!=NULL;)
{
if(p!=head[0])
{
cout < < "请传递链表的头结点 " < <endl;
cin.get();
exit(1);
}
else
{
sum=sum+p-> value;
p=p-> next;
}
}
average_val=sum/counter;
return average_val;
}
double deviation(link* nod,double counter)
{
double sum=0;
double temp=0;
link* p=nod;
while(p!=NULL)
{
temp=(p-> value-average_val)*(p-> value-average_val);
sum=sum+temp;
p=p-> next;
}
sum=sum/counter-1;
return sqrt(sum);
}
bool addnode(link* nod,double val)
{
if(nod!=head[1])
{
cout < < "请传递链表的末节点 " < <endl;
return false;
}
else
{
link* temp=(link*)malloc(sizeof(link));
nod-> next=temp;
temp-> value=val;
temp-> next=NULL;
return true;
}
}
bool removenode(link* nod,double val)
{
link* p1;
link* p2;
if(nod!=head[0])
{
cout < < "请传递链表的头结点 " < <endl;
cin.get();
return false;
}
else
{
if(nod-> value==val)
{
head[0]=nod-> next;
}
else
{
p1=nod;
while(p1-> value!=val)
{
p2=p1;
p1=p1-> next;
}
p2=p1-> next;
}
return true;
}
}
link* nextnode(double val)
{
link* p1;
p1=head[0];
while(p1-> value!=val&&p1!=NULL)
{
p1=p1-> next;
}
return p1;
}
link* priornode(double val)
{
link* p1;
link* p2;
if(val==head[0]-> value)
return head[0];
else
{
p1=head[0];
p2=p1;
while(p1-> value!=val&&p1!=NULL)
{
p2=p1;
p1=p1-> next;
}
return p2;
}
}
void print()
{
for(link* p=head[0];p!=NULL;p=p-> next)
cout < <p-> value < <endl;
}
一个c.cpp文件
#include“a.h "
然后抱错为:
test error LNK2005: "struct link * * head " (?head@@3PAPAUlink@@A) 已经在 maketure.obj 中定义
一个a.h文件
#ifndef _GLOBAL_H_
#define _GLOBAL_H_
#include <stdio.h>
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
struct link
{
double value;
link* next;
};
//--------------------------------全局变量---------------------------------------//
link * head[2];
double average_val;
//-------------------------------------------//
double average(link* nod,double counter);
double deviation(link* nod,double counter);
bool addnode(link* nod,double val);
bool removenode(link* nod,double val);
link *nextnode(double val);
link *priornode(double val);
void print();
#endif
一个b.cpp文件实现了a.h中的函数,
#include "global.h "
using namespace std;
double average(link* nod,double counter)
{
double sum=0;
for(link* p=nod;p!=NULL;)
{
if(p!=head[0])
{
cout < < "请传递链表的头结点 " < <endl;
cin.get();
exit(1);
}
else
{
sum=sum+p-> value;
p=p-> next;
}
}
average_val=sum/counter;
return average_val;
}
double deviation(link* nod,double counter)
{
double sum=0;
double temp=0;
link* p=nod;
while(p!=NULL)
{
temp=(p-> value-average_val)*(p-> value-average_val);
sum=sum+temp;
p=p-> next;
}
sum=sum/counter-1;
return sqrt(sum);
}
bool addnode(link* nod,double val)
{
if(nod!=head[1])
{
cout < < "请传递链表的末节点 " < <endl;
return false;
}
else
{
link* temp=(link*)malloc(sizeof(link));
nod-> next=temp;
temp-> value=val;
temp-> next=NULL;
return true;
}
}
bool removenode(link* nod,double val)
{
link* p1;
link* p2;
if(nod!=head[0])
{
cout < < "请传递链表的头结点 " < <endl;
cin.get();
return false;
}
else
{
if(nod-> value==val)
{
head[0]=nod-> next;
}
else
{
p1=nod;
while(p1-> value!=val)
{
p2=p1;
p1=p1-> next;
}
p2=p1-> next;
}
return true;
}
}
link* nextnode(double val)
{
link* p1;
p1=head[0];
while(p1-> value!=val&&p1!=NULL)
{
p1=p1-> next;
}
return p1;
}
link* priornode(double val)
{
link* p1;
link* p2;
if(val==head[0]-> value)
return head[0];
else
{
p1=head[0];
p2=p1;
while(p1-> value!=val&&p1!=NULL)
{
p2=p1;
p1=p1-> next;
}
return p2;
}
}
void print()
{
for(link* p=head[0];p!=NULL;p=p-> next)
cout < <p-> value < <endl;
}
一个c.cpp文件
#include“a.h "
然后抱错为:
test error LNK2005: "struct link * * head " (?head@@3PAPAUlink@@A) 已经在 maketure.obj 中定义