矩阵转置

#include<iostream>
#include<iomanip>
using namespace std;
int a[3][3];//声明二维数组
void print();
void change(int (*a)[3]);//参数为指针数组
int main()
{
cout<<"请输入一个3*3的矩阵"<<'\n';
for(int i=0;i<3;++i)
for(int j=0;j<3;++j)
{
cin>>a[i][j];
}
cout<<"写成3*3形式为:"<<endl;
print();
change(a);
cout<<"转置为:"<<endl;
print();
return 1;
} //==================================
void print()
{
for(int i=0;i<3;++i)
{
for(int j=0;j<3;++j)
{
cout<<setw(5)<<setfill(' ')<<a[i][j]<<" ";
}
cout<<endl;
}
} //==================================
void change(int (*a)[3])
{
int(*p)[3],temp;
p=a;//首地址赋给p
for(int i=0;i<3;++i)
for(int j=0;j<3;++j)
{
if(j>i)//判断j>i,其实i>j也可,主要使一边大于另一边
{
temp=*(*(p+i)+j);
*(*(p+i)+j)=*(*(p+j)+i);
*(*(p+j)+i)=temp;
}
}
}

 //-------------------------向量

#include<iostream>
#include<sstream>
#include<vector>
using namespace std;
int main()
{
string a;
int b,temp=0;
vector<int> vec;//声明向量
getline(cin,a);//getline(cin,a)//string a的输入方式
b=a.length();//b=a.length()//a的长度赋给b
for(int i=0;i<b;++i)
{
if(a[i]>='0'&&a[i]<='9')
{
temp=temp*10+a[i]-'0';
if(a[i+1]<'0'||a[i+1]>'9')
{
vec.push_back(temp);//插入向量中
temp=0;
}
}
}
cout<<"数字的个数为:"<<vec.size()<<endl;
for(i=0;i<vec.size();++i)
{
cout<<vec[i]<<" ";
}
cout<<endl;
return 1;
}

posted @ 2013-05-14 22:00  herizai  阅读(156)  评论(0编辑  收藏  举报