用代码块功能插入代码,请勿粘贴截图
//头文件matrix.h如下
#pragma once
#ifndef _MATRIX_H_
#define _MATRIX_H_
#include<iostream>
#include<cstdio>
#include<cmath>
#include<vector>
using namespace std;
extern int n,m,nn,maxn;//n为馈线数量,m为联络线数量 ,nn为总支路数量 ,maxn为馈线最大节点数
extern int PSPMnum,PSEEnum,tempnum,PSEnum,Pnum,Qnum,TIEnum,IF1num,IF2num,IF3num,IF4num;
extern double lama,*lamada,*lamadaLP,SAIFI,**IF,miu,miu1,*miuLP,lamada1,SAIDI;
extern int cnt,head[99999];
struct edge{
int end,next,val;
}extern e[2*99999];
extern int **E,SEnum,FUSEnum,**P,**Q,**c;
vector<int> extern SE;
vector<int> extern FUSE;
vector<int> extern PSPM;
vector<int> extern temp;
vector<int> extern PSEE;
vector<int> extern PSE;
vector<int> extern TIE;
vector<int> extern IF1;
vector<int> extern IF2;
vector<int> extern IF3;
vector<double> extern IF4;
extern int **N,**M,**EX,Enum;
extern bool *QQ;
void createEX();
void createE();
void createSEFUSE();
void createPQ();
void createQQ();
void createPSPM();
void createPSEE();
void createTIE();
void createIF();
void ini();
#endif
//包含主函数的cpp如下
#include "matrix.h"
#include<iostream>
using namespace std;
int n,m,nn=0,maxn=0;//n为馈线数量,m为联络线数量 ,nn为总支路数量 ,maxn为馈线最大节点数
int PSPMnum=0,PSEEnum=0,tempnum=0,PSEnum=0,Pnum=0,Qnum=0,TIEnum=0,IF1num=0,IF2num=0,IF3num=0,IF4num=0;
double lama,*lamada,*lamadaLP,SAIFI,**IF,miu,miu1,*miuLP,lamada1,SAIDI;
int cnt=0,head[99999];
int **E,SEnum=0,FUSEnum=0,**P,**Q,**c;
vector<int> SE;
vector<int> FUSE;
vector<int> PSPM;
vector<int> temp;
vector<int> PSEE;
vector<int> PSE;
vector<int> TIE;
vector<int> IF1;
vector<int> IF2;
vector<int> IF3;
vector<double> IF4;
int **N,**M,**EX,Enum;
bool *QQ;
inline void getSAIFI()
{
lamadaLP=new double [nn+1];
for(int i=0;i<=nn;i++)
lamadaLP[i]=0;
for(int i=0;i<IF1num;i++)
{
int h=IF1[i*3];
int l=IF1[i*3+1];
lamadaLP[l]+=IF1[i*3+2]*lamada[h];
}
for(int i=1;i<=nn;i++)
lamadaLP[i]+=lamada1;
SAIFI=0;
for(int i=1;i<=nn;i++)
SAIFI+=lamadaLP[i];
SAIFI/=nn;
return;
}
inline void getSAIDI()
{
for(int i=0;i<IF2num;i++)
{
IF4.push_back((double)IF2[i*3]);
IF4.push_back((double)IF2[i*3+1]);
IF4.push_back((double)(IF2[i*3+2]*miu));
IF4num++;
}
for(int i=0;i<IF3num;i++)
{
bool flag=1;
for(int j=0;j<IF4num;j++)
{
if(IF4[j*3]==IF3[i*3]&&IF4[j*3+1]==IF3[i*3+1])
{
flag=0;
IF4[j*3+2]+=(double)IF3[i*3+2];
}
}
if(flag)
{
IF4.push_back((double)IF3[i*3]);
IF4.push_back((double)IF3[i*3+1]);
IF4.push_back((double)IF3[i*3+2]);
IF4num++;
}
}
miuLP=new double[nn+1];
for(int i=0;i<=nn;i++)
miuLP[i]=0;
for(int i=0;i<IF4num;i++)
{
int h=(int)IF4[i*3];
int l=(int)IF4[i*3+1];
miuLP[l]+=IF4[i*3+2]*lamada[h];
}
for(int i=1;i<=nn;i++)
miuLP[i]+=miu1;
for(int i=1;i<=nn;i++)
SAIDI+=miuLP[i];
SAIDI/=nn;
return;
}
int main()
{
freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
ini();
createEX();
createE();
createSEFUSE();
createPQ();
createQQ();
createPSPM();
createPSEE();
createTIE();
createIF();
getSAIFI();
getSAIDI();
cout<<SAIFI<<endl;
cout<<SAIDI;
fclose(stdin);
// fclose(stdout);
return 0;
}
main.o main.cpp:(.text+0x2d): undefined reference to ini()' main.o main.cpp:(.text+0x32): undefined reference to
createEX()'
main.o main.cpp:(.text+0x37): undefined reference to createE()' main.o main.cpp:(.text+0x3c): undefined reference to
createSEFUSE()'
main.o main.cpp:(.text+0x41): undefined reference to createPQ()' main.o main.cpp:(.text+0x46): undefined reference to
createQQ()'
main.o main.cpp:(.text+0x4b): undefined reference to createPSPM()' main.o main.cpp:(.text+0x50): undefined reference to
createPSEE()'
main.o main.cpp:(.text+0x55): undefined reference to createTIE()' main.o main.cpp:(.text+0x5a): undefined reference to
createIF()'
ini.o ini.cpp:(.rdata$.refptr.e[.refptr.e]+0x0): undefined reference to `e'
collect2.exe [Error] ld returned 1 exit status
25 Makefile.win recipe for target '电力系统可靠性计算.exe' failed
比如这个createEX()头文件的声明有了,但是没看到你在哪里定义