返回信息流任务:输入一组数eg.x=(123456789)转换成交织矩阵eg.
1 4 7
2 5 8
3 6 9
按行输出x=(147258369)
请高手帮忙给出程序~~
这是一条镜像帖。来源:北邮人论坛 / cpp / #36159同步于 2010/2/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
请高手帮忙:交织矩阵
arona
2010/2/28镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
#include <vector>
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
//初始化x = {1,2,3,4,5,6,7,8,9}
vector<int> x;
for(int i = 1; i< 9 + 1; i++)
{
x.push_back(i);
}
//得到x的维度:3
int dimension = (int)sqrt((double)x.size());
//x的行赋到y的列
vector<int> y;
for(int i = 0; i < x.size(); i += dimension)
{
for(int j = 0; j < dimension; j++)
{
y.push_back(x.at(j * dimension + i / dimension));
}
}
//打印输出
for(int i = 0; i < x.size(); i++)
{
cout << y.at(i) <<" ";
}
cout << endl;
return 0;
}
【 在 josephbupt 的大作中提到: 】
: #include <vector>
: #include <iostream>
: #include <math.h>
: ...................
可不可请大侠给个c的?感激不尽~~~
把vector<int> x改成int x[9],x.at(i)改成x[i]。
【 在 arona 的大作中提到: 】
: 可不可请大侠给个c的?感激不尽~~~
#include <stdio.h>
#include <math.h>
#include <string.h>
#define MAX_NUM 9
int main()
{
int dimension;
//初始化x = {1,2,3,4,5,6,7,8,9}, y = {0,0,0,0,0,0,0,0,0}
int x[MAX_NUM];
int y[MAX_NUM];
memset(x, 0, sizeof(x));
for(int i = 0; i< MAX_NUM; i++)
{
x[i] = i + 1;
}
memset(y, 0, sizeof(y));
//得到x的维度:3
dimension = (int)sqrt((double)MAX_NUM);
//x的行赋到y的列
for(int i = 0; i < MAX_NUM; i += dimension)
{
for(int j = 0; j < dimension; j++)
{
y[i + j] = x[j * dimension + i / dimension];
}
}
//打印输出
for(int i = 0; i < MAX_NUM; i++)
{
printf("%d ", y[i]);
}
printf("\n");
return 0;
}
【 在 arona 的大作中提到: 】
: 可不可请大侠给个c的?感激不尽~~~
【 在 josephbupt 的大作中提到: 】
: #include <stdio.h>
: #include <math.h>
: #include <string.h>
: ...................
啊。。那个。。26个error,劳烦大侠看一下