
程序补充:
SUBROUTINE
FN(N,X,Y,Z)
IMPLICIT
REAL(A-H,O-Z)
PARAMETER
(a=180,L=210,G=120)
DIMENSION
R(N,N),X(N),Y(N),Z(N)
CALL
DISTANCE(N,X,Y,Z,R)
FX=0
DO
I=1,N
DO
J=1,N
DO
K=1,N
F1=EXP(G/(R(I,J)-a)+G/(R(I,K)-a))
F2=((R(I,J)2+R(I,K)2-R(J,K)2)/(2R(I,J)R(I,K))+1/3)2
FX=FX+LF1F2
ENDDO
ENDDO
ENDDO
RETURN
END
SUBROUTINE
FT(N,X,Y,Z)
IMPLICIT
REAL(A-H,O-Z)
PARAMETER
(c=7049556277,d=06022245584,P=4,Q=0,a=180)
DIMENSION
R(N,N),X(N),Y(N),Z(N)
CALL
DISTANCE(N,X,Y,Z,R)
FY=0
DO
I=1,N
DO
J=1,N
IF(R(I,J)LTa)
THEN
FY=FY+c((d(-P))-R(I,J)(-Q))EXP(1/(R(I,J)-a))
ELSE
FY=0
ENDIF
ENDDO
ENDDO
RETURN
END
SUBROUTINE
ENERGY(N,X,Y,Z)
IMPLICIT
REAL(A-H,O-Z)
DIMENSION
X(N),Y(N),Z(N)
CALL
FN(N,X,Y,Z)
CALL
FT(N,X,Y,Z)
E=FX+FY
RETURN
END
DO
I=1,N
DO
J=1,N
DO
K=1,N
F1=EXP(G/(R(I,J)-a)+G/(R(I,K)-a))
F2=((R(I,J)2+R(I,K)2-R(J,K)2)/(2R(I,J)R(I,K))+1/3)2
FX=FX+LF1F2
ENDDO
ENDDO
ENDDO
RETURN
END
我给你介绍一个公式吧:(泰勒工式展开式)
e=1+ 1 + 1/2! +1/3! +1/4! +1/5! + + 1/n!
其中,n!表示n的阶乘:n!=n(n-1)(n-2)321;可以专门设计一个子函数求 n! ;(n越大,精确度越高)
下面是代码:
//网页上直接写的,在VC++60运行时如果编译出错,那就改一下分
//号和逗号
#include<stdioh>
#define N 20
int jiecheng(int n)
{
int i=n;
int result=1;
while(i)//
{
result=i;
i--;
}
return result;
}
void main()
{
int i;
double e=2;
for(i=2;i<N;i++)
{
e+=1/(jiecheng(i)10)
}
printf("e=%lf\n",e);
}
我重新帮你写了个,你看看:
#include <string>
#include <iostream>
#include <map>
#include <cstddef>
#include <functional>
#include <cstdlib>
#include <ctime>
#include <cmath>
class players
{
struct PlayerInfos
{
PlayerInfos();
std::string name;
int level;
double exp;
}infos;
public:
typedef std::map<std::size_t, PlayerInfos, std::greater<size_t> > value_type;
typedef std::size_t size_type;
void AddPlayer();
void SetInfos();
void GetInfos();
void GetTotalInfo();
size_type Amount()const;
private:
value_type data;
};
players::PlayerInfos::PlayerInfos()
: name(""), level(std::rand() % 100 + 1), exp(pow(level 4480, 2))
{
}
void players::AddPlayer()
{
std::cinexceptions(std::ios_base::failbit | std::ios_base::badbit);
size_type id;
std::cin >> id;
if(datafind(id) != dataend())
{
std::cout << "该ID已存在!\n";
return;
}
std::cout << "请输入新玩家的姓名: ";
PlayerInfos Pinfos;
std::cin >> Pinfosname;
std::cout << '\n';
this->datainsert(value_type::value_type(id, Pinfos));
}
void players::SetInfos()
{
std::cinexceptions(std::ios_base::failbit | std::ios_base::badbit);
std::cout << "请输入要设置的玩家id: ";
size_type id;
std::cin >> id;
std::cinclear();
if(datafind(id) == dataend())
{
std::cout << "玩家不存在!\n\n";
return;
}
std::cout << "请输入ID为: " << id << " 的玩家的姓名: ";
std::cin >> data[id]name;
std::cout << "请输入ID为: " << id << " 的玩家的等级: ";
std::cin >> data[id]level;
std::cout << "请输入ID为: " << id << " 的玩家的经验: ";
std::cin >> data[id]exp;
std::cout << "设置完毕" << std::endl;
}
void players::GetInfos()
{
std::cinexceptions(std::ios_base::failbit | std::ios_base::badbit);
std::cout << "请输入要检索的玩家ID: ";
std::cinclear();
size_type id;
std::cin >> id;
std::cinclear();
if(datafind(id) == dataend())
{
std::cout << "玩家不存在!\n\n";
return;
}
std::cout << "\nID为: " << id << " 的玩家的姓名: ";
std::cout << data[id]name << '\n';
std::cout << "ID为: " << id << " 的玩家的等级: ";
std::cout << data[id]level << '\n';
std::cout << "ID为: " << id << " 的玩家的经验: ";
std::cout << data[id]exp << '\n';
std::cout << "检索完毕\n" << std::endl;
}
inline players::size_type players::Amount()const
{
return datasize();
}
void players::GetTotalInfo()
{
for(value_type::iterator it = databegin(); it != dataend(); ++it)
{
std::cout << "ID: " << it->first << '\n';
std::cout << "姓名: " << it->secondname << '\n';
std::cout << "等级: " << it->secondlevel << '\n';
std::cout << "经验: " << it->secondexp << '\n' << std::endl;
}
}
int main()
{
using namespace std;
srand(unsigned(time(0)));
players ps;
for(int i = 0; i < 5; ++i)
psAddPlayer();
cout << endl;
for(int i = 0; i < 5; ++i)
psGetInfos();
psGetTotalInfo();
}
演示:
请输入新玩家的ID: 3
请输入新玩家的姓名: shj
请输入新玩家的ID: 6
请输入新玩家的姓名: jimmyi
请输入新玩家的ID: 1
请输入新玩家的姓名: spring
请输入新玩家的ID: 121
请输入新玩家的姓名: bird
请输入新玩家的ID: 99
请输入新玩家的姓名: boss
请输入要检索的玩家ID: 3
ID为: 3 的玩家的姓名: shj
ID为: 3 的玩家的等级: 42
ID为: 3 的玩家的经验: 354042e+008
检索完毕
请输入要检索的玩家ID: 1
ID为: 1 的玩家的姓名: spring
ID为: 1 的玩家的等级: 71
ID为: 1 的玩家的经验: 101175e+009
检索完毕
请输入要检索的玩家ID: 121
ID为: 121 的玩家的姓名: bird
ID为: 121 的玩家的等级: 57
ID为: 121 的玩家的经验: 652087e+008
检索完毕
请输入要检索的玩家ID: 99
ID为: 99 的玩家的姓名: boss
ID为: 99 的玩家的等级: 53
ID为: 99 的玩家的经验: 563778e+008
检索完毕
请输入要检索的玩家ID: 8
玩家不存在!
ID: 121
姓名: bird
等级: 57
经验: 652087e+008
ID: 99
姓名: boss
等级: 53
经验: 563778e+008
ID: 6
姓名: jimmyi
等级: 47
经验: 443355e+008
ID: 3
姓名: shj
等级: 42
经验: 354042e+008
ID: 1
姓名: spring
等级: 71
经验: 101175e+009
public static void main(String[] args) {
String time="2012-03-04";
String time1="2012-03-05";
int point=8;
String a="时间:"+time+"分数:"+point++;
String b="时间:"+time+"分数:"+point++;
String c="时间:"+time+"分数:"+point++;
String d="时间:"+time1+"分数:"+point++;
String e="时间:"+time1+"分数:"+point++;
String f="时间:"+time1+"分数:"+point++;
String g="时间:"+time1+"分数:"+point++;
List<String> sug = new ArrayList<String>();
sugadd(a);
sugadd(b);
sugadd(c);
sugadd(d);
sugadd(e);
sugadd(f);
sugadd(g);
List<String> res = new ArrayList<String>();
String exp = "";
int count = 0;
for(int i=0;i<sugsize();i++){
exp = sugget(i);
if(ressize()==0){
resadd(exp);
}else{
int size = ressize();
for(int j=0;j<size;j++){
if(resget(j)indexOf(expsplit(":")[1])>0){
count+=1;
if(IntegerparseInt(expsplit(":")[2])>IntegerparseInt(resget(j)split(":")[2])){
String tmp = "";
tmp = exp;
exp = resget(j);
resset(j, tmp);
}
}else if(j+1 == ressize()){
resadd(exp);
}
if(j+1==ressize() && count<3 && count!=3){
resadd(exp);
}
}
count = 0;
}
}
Iterator<String> it = resiterator();
while(ithasNext()){
Systemoutprintln(itnext());
}
}
以上就是关于FORTRAN 程序问题,子程序无法调用 导致无法运算结果。急!!!全部的内容,包括:FORTRAN 程序问题,子程序无法调用 导致无法运算结果。急!!!、c语言中怎求数学中的e是多少啊、C++ 实现一个简单的类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)