📄 yn.cpp
字号:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define X 50
static int n,b,c,ty[X],br[X],f[X],t[X];
float va1[X],va2[X];
float vay[X],vai[X];
float ynr[X][X],jnr[X];
void input()
{
int k;
char filename[10];
FILE *fp;
cout<<"\nplease intput data file name\n";
cin>>filename;
if((fp=fopen(filename,"r+"))==NULL)
{
cout<<"cannot open file\n";
exit(0);
}
fscanf(fp,"%d%d%d",&n,&b,&c);
for(k=1;k<=c;k++)
fscanf(fp,"%d%d%f%f",&ty[k],&br[k],&va1[k],&va2[k]);
for(k=1;k<=b;k++)
fscanf(fp,"%d%d",&f[k],&t[k]);
fclose(fp);
}
void makeyj()
{
int i,j;
for(i=1;i<=c;i++)
{
if(ty[i]==0)
{
vay[i]=1/va1[i];
}
else if(ty[i]==1)
{
vay[i]=va1[i];
}
else if(ty[i]==2)
{
vai[i]=va1[i];
}
else if(ty[i]==3)
{
vai[i]=va1[i];
}
}
for(i=1;i<=c;i++)
{
if(ty[i]==0||ty[i]==1)
{
ynr[f[br[i]]][f[br[i]]]+=vay[i];
ynr[t[br[i]]][t[br[i]]]+=vay[i];
ynr[f[br[i]]][t[br[i]]]-=vay[i];
ynr[t[br[i]]][f[br[i]]]-=vay[i];
}
else if(ty[i]==2)
for(j=1;j<=c;j++)
{
if((br[j]==br[i])&&(ty[j]==0||ty[j]==1))
{
jnr[f[br[i]]]-=vai[i]*vay[j];
jnr[t[br[i]]]+=vai[i]*vay[j];
}
}
else if(ty[i]==3)
{
jnr[f[br[i]]]+=vai[i];
jnr[t[br[i]]]-=vai[i];
}
}
}
void outputyn()
{
int i,k;
printf("array Yn is:\n");
for(i=1;i<n;i++)
{
for(k=1;k<n;k++)
{
printf("%10f",ynr[i][k]);
}
printf("\n");
}
}
void outputjn()
{
int i;
printf("array Jn is:\n");
for(i=1;i<n;i++)
{
printf("%10f",jnr[i]);
printf("\n");
}
}
void main()
{
input();
makeyj();
outputyn();
outputjn();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -