引用文献顺序纠正

有些作者太非主流了,引用文献的顺序不按第一次引用的顺序来,例如,引用文献在文章中出现的顺序为

 [4],[3],[4],[1],[2],[3],[1]

把它纠正过来,引用顺序应该为

[1],[2],[1],[3],[4],[2],[3]

置换映射为

1:4

2:3

3:1

4:2


下面简单的小代码实现上述功能

include <iostream> 
#include <vector>
using namespace std ;

int main(int argc, char** argv) {
	int temp ;
	int sort = 0 ;
	vector<int> fuck ;
	vector<int> map_ ;
	cout<<"请输入原始的文献引用序列,以回车分隔序列,以任意非数字字符结束输入"<<endl ; 
	while(cin>>temp)
		fuck.push_back(temp) ;
	for(int i = 0 ; i != fuck.size() ; i++ ){
		if(fuck[i] >= 0 && fuck[i] < sort)
			continue ;
		if(fuck[i] > 0 )
			map_.push_back(fuck[i]);
		else
			map_.push_back(-fuck[i]) ;
		for(int j = i+1 ; j != fuck.size() ; j++)
			if(fuck[j] == fuck[i])
				fuck[j] = sort ;
			else if(fuck[j] == sort)
				fuck[j] = -sort ;
		fuck[i] = sort ;
		sort++ ;
	}
	cout<<"符合标准的的引用序列应该为:"<<endl ;
	for(int i = 0 ; i != fuck.size() ; i++ )
		cout<<fuck[i]+1<<" "<<flush ;
	cout<<endl ;
	cout<<"置换映射:"<<endl ;
	for(int i = 0 ; i != map_.size() ; i++ )
		cout<<i+1<<": "<<map_[i]<<endl ;
	cout<<"输入任意字符结束"<<endl ; 
	int e1 ;
	cin>>e1 ;
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值