C++之数组转换
题目如下:
这道题经过好久的思考也没找到能一次性输入两组数的方法,只能一次性处理一组数,所以就把代码放上来,欢迎交流留言一起讨论可以放两组数的方法~(QQ 841587906)
1 #include <iostream>
2 #include <vector>
3 #include <algorithm>
4 #include <string.h>
5 #include <sstream>
6 using namespace std;
7
8 int swapNum(int length,vector<int>,vector<int>);
9
10 int main()
11 {
12 /*先接收数列的长度 创建原数组
13 //接收转换数组 遍历转换数组 交换原数组的数据 再跟目标数组比较是否相等
14 //接收目标数组*/
15
16
17
18
19 vector<int> trans_vec,aim_vec;
20 //数组长度
21 int length;
22 cin >> length;
23
24 //给两个数组分配空间
25 trans_vec.reserve(length);
26 aim_vec.reserve(length);
27
28 //接收的数值
29 int number;
30 //数组的索引值
31 int index = 0;
32
33 //给转换数组和目标数组赋值
34 while(index < length && cin >> number ){
35 trans_vec.insert(trans_vec.begin()+index,number);
36 index ++;
37 }
38 index = 0;
39 while(index < length && cin >> number){
40 aim_vec.insert(aim_vec.begin()+index,number);
41 index ++;
42 }
43
44 //跳出循环的两个条件:time超过次数;经过time转换变成目标数组
45 int time = swapNum(length,trans_vec,aim_vec);
46 if(time < 50){
47 cout << time << endl;
48 }else{
49 cout << "impossible" << endl;
50 }
51
52
53
54 return 0;
55
56 }
57
58
59 int swapNum(int length,vector<int> trans_vec,vector<int> aim_vec){
60 //创建一个经过变化的目标数组 和 原数组
61 int supposeaim_vec[length],orig_array[length];
62 for(int i = 0;i <length;i++){
63 orig_array[i] = i;
64 }
65
66 //读取转换数列中的值 来操作原数组
67 //记录执行转换数组的次数
68 int time = 0;
69 bool flag = false;
70 while(time < 50 && !flag){//当超过50就不再继续操作
71 for(int i = 0;i < length; i++){
72 int j = trans_vec[i];
73 //将原数组的第i个元素放到目标数组的第j个位置
74 supposeaim_vec[j] = orig_array[i];
75 }
76 //运行完将原数组
77 memcpy(orig_array,supposeaim_vec,length*sizeof(int));
78 //完成一次就次数+1
79 time++;
80 flag = true;
81 for(int i = 0;i < length;i++){
82 if(supposeaim_vec[i] != aim_vec[i]){
83 flag = false;
84 }
85 }
86 }
87
88
89 return time;
90
91 }
C++之数组转换的更多相关文章
- C#字节数组转换成字符串
C#字节数组转换成字符串 如果还想从 System.String 类中找到方法进行字符串和字节数组之间的转换,恐怕你会失望了.为了进行这样的转换,我们不得不借助另一个类:System.Text.Enc ...
- 100怎么变成100.00 || undefined在数字环境下是:NaN || null在数字环境下是0 || 数组的toString()方法把每个元素变成字符串,拼在一起以逗号隔开 || 空数组转换成字符串后是什么?
100怎么变成100.00?
- js对象、数组转换字符串
对象转换成字符串需要使用toString()方法. 1 var a = function(){ 2 console.log(111); 3 }; 4 var b = a.toString(); 5 c ...
- C/C++中数组转换成指针的情况
数组转换成指针:在大多数用到数组的表达式中,数组自动转换成指向数组首元素的指针.比如: int ia[10]; int *p = ia; //ia转换成指向数组首元素的指针 以下情况上述转换不会发生: ...
- http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理,及它的逆向函数
http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理 例如: $data = array( 'foo'=>'bar', ' ...
- 如何将PHP对象数组转换成普通数组
/** * 对象数组转为普通数组 * * AJAX提交到后台的JSON字串经decode解码后为一个对象数组, * 为此必须转为普通数组后才能进行后续处理, * 此函数支持多维数组处理. * * @p ...
- 字符串集合或字符串数组转换成json数组
字符串可以是List<String>类型的字符串集合,也可以是String[]类型的字符串数组,二者转换成JSON数组的方式没有什么不同.下面代码注意关键的部分即可(画红线部分). 1. ...
- 怎样把php数组转换成字符串,php implode()
实例代码 一维数组转换成字符串代码! <?php $arr1=array("shu","zhu","1"); $c=implode(& ...
- $.toJSON的用法或把数组转换成json类型
1. html页面全部代码 <html> <head> <title></title> <script src="../../S ...
- C# 之 将string数组转换到int数组并获取最大最小值
1.string 数组转换到 int 数组 " }; int[] output = Array.ConvertAll<string, int>(input, delegate(s ...
随机推荐
- (一)《SQL进阶教程》学习记录--CASE
背景:最近用到统计之类的复杂Sql比较多,有种"提笔忘字"的感觉,看书练习,举一反三,巩固加强. (一) <SQL进阶教程>学习记录--CASE (二) <SQL ...
- centos 添加sudo 权限
https://apple.stackexchange.com/a/82527 visudo user1 ALL=(user2) NOPASSWD: /bin/bash amy ALL=(AL ...
- rabbitMQ报错:Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method:
1.输入的机器的 IP:15672进入Raabitmq的登陆管理界面 点击admin,进去点击set permission ok, 在运行应该就不会包这个错了
- Python命令行参数及文件读出写入
看完了柯老板的个人编程作业,虽然是评测组不用做此次作业,但还是想对本次作业涉及到利用Python命令行参数以及进行文件读出写入操作做一个简单的总结.(个人编程作业还是想自己能敲一敲,毕竟我的码力还是小 ...
- 动手写一个简单的Web框架(Werkzeug路由问题)
动手写一个简单的Web框架(Werkzeug路由问题) 继承上一篇博客,实现了HelloWorld,但是这并不是一个Web框架,只是自己手写的一个程序,别人是无法通过自己定义路由和返回文本,来使用的, ...
- vue如何写组件(script标签引入的方式)
很多人知道.vue结构的单文件组件形式,不过这种单文件组件的结构如果要加入到现有的jquery项目中就比较麻烦了,那如果我们又想用vue来写模板,又不想引入vue-cli管理,那该怎么来写组件呢?别着 ...
- 菜鸡的Java笔记 生产者与消费者
生产者与消费者 代码要求知道做什么用即可 线程间的通讯问题以及 Object 类的支持 基础模型 现在希望实现一种数据的生产和取出的操作 ...
- java开发环境搭建,配置
java开发环境搭建 下载jdk8的地址 是oracle的 安装JDK 下载电脑对应的版本 双击安装JDK 记住安装路径 配置环境变量 我的电脑/此电脑 右键属性 高级设置 环境变量 点击新建 变量名 ...
- kafka数据清理
Kafka将数据持久化到了硬盘上,允许你配置一定的策略对数据清理,清理的策略有两个,删除和压缩. 数据清理的方式 删除 log.cleanup.policy=delete启用删除策略直接删除,删除后的 ...
- myeclipse自带tomcat
安装myeclipse自带的tomcat没有在myeclipse的安装目录下,是再myeclipse指定的工作空间下 的.metadata\.plugins\com.genuitec.eclipse. ...