博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一篇,书上的fortran用c++实现
阅读量:7243 次
发布时间:2019-06-29

本文共 2299 字,大约阅读时间需要 7 分钟。

a.cpp
#include 
#include
#include
using namespace std;int ne, nj, njt;vector
jh; // 2vector
jtx; // 4vector
jw; // 3vector
mw; // 6void qjw(){ int counter = 1; for (int i = 0; i < nj; ++i) { int *toAdd = new int(3); int jtxIndex = -1; // search from jtx for (int j = 0; j < njt; ++j) { if (jtx[j][0] == i + 1) { jtxIndex = j; break; } } for (int k = 0; k < 3; ++k) { if (jtxIndex == -1) { toAdd[k] = counter++; continue; } int jtxValue = jtx[jtxIndex][k + 1]; switch (jtxValue) { case 10001: toAdd[k] = -1; break; case 0: toAdd[k] = counter++; break; case 1: toAdd[k] = 0; break; case 1001: jtxValue = 1; default: // best to buffer this, and do this after loop.. toAdd[k] = jw[jtxValue - 1][k]; break; } } jw.push_back(toAdd); }}void qmw(){ for (int i = 0; i < ne; ++i) { int *toAdd = new int(6); int j1 = jh[i][0] - 1; int *jj1 = jw[j1]; for (int j = 0; j < 3; ++j) toAdd[j] = jj1[j]; int j2 = jh[i][1] - 1; int *jj2 = jw[j2]; for (int j = 3; j < 6; ++j) toAdd[j] = jj2[j - 3]; mw.push_back(toAdd); }}int main(int argc, char **argv){ if (argc < 2) return -1; ifstream ifs(argv[1]); if (!ifs.is_open()) { cout << "can not open file: " << argv[1] << endl; return -1; } ifs >> ne >> nj >> njt; for (int i = 0; i < ne; ++i) { int *e = new int(2); ifs >> e[0] >> e[1]; jh.push_back(e); } for (int i = 0; i < njt; ++i) { int *jt = new int(4); ifs >> jt[0] >> jt[1] >> jt[2] >> jt[3]; jtx.push_back(jt); } qjw(); qmw(); cout << "finding the mw(6) of elements" << endl; for (int i = 0; i < ne; ++i) { cout << "element no." << (i + 1) << endl; int *m = mw[i]; cout << "mw = "; for (int j = 0; j < 6; ++j) cout << m[j] << " "; cout << endl; } return 0;}
e.dat
8 10 109 2 9 4 10 6 10 8 1 3 3 5 5 7 9 101 1 1 0 2 1 1 10001 3 10001 0 0 4 3 3 10001 5 10001 0 0 6 5 5 10001 7 10001 1 0 8 7 1 10001 9 0 0 10001 10 0 0 10001
test & output
g++ a.cpp -o a./a e.datfinding the mw(6) of elementselement no.1mw = 7 8 -1 0 0 -1 element no.2mw = 7 8 -1 -1 2 -1 element no.3mw = 9 10 -1 -1 4 -1 element no.4mw = 9 10 -1 -1 0 -1 element no.5mw = 0 0 1 -1 2 3 element no.6mw = -1 2 3 -1 4 5 element no.7mw = -1 4 5 -1 0 6 element no.8mw = 7 8 -1 9 10 -1

转载于:https://www.cnblogs.com/hylent/archive/2011/11/02/2233732.html

你可能感兴趣的文章
BFS模板
查看>>
SQL server 2008(Linux安装)
查看>>
网络编程
查看>>
ThinkPHP快捷函数
查看>>
搭建企业内部yum仓库(centos6+centos7+epel源)
查看>>
zabbix系列(十)zabbix添加对zookeeper集群的监控
查看>>
前后端分离下如何登录
查看>>
【Android OpenGL ES】阅读hello-gl2代码(一)准备工作
查看>>
关于逻辑或和逻辑与的实际用处
查看>>
HDU2520 我是菜鸟,我怕谁【水题】
查看>>
孙子算经 卷中
查看>>
浅谈Android onClick与onLongClick事件触发的问题
查看>>
ELK部署笔记
查看>>
各浏览器驱动下载地址
查看>>
vue-cli3.0控制台体验
查看>>
ERP结账不自动清台的解决办法
查看>>
springMVC核心配置文件样例
查看>>
嵌入式第十次实验报告
查看>>
Python 图像格式转换
查看>>
C#_Queue实例
查看>>