c++ 关于二维数组的问题
将3x3阶二维数组的关于主对角线对称的元素互换。二维数组的第1至3行元素分别为1、2、3、4、5、6、7、8、9。用矩阵形式分别输出互换前、后的数组元素值。...
将3x3阶二维数组的关于主对角线对称的元素互换。二维数组的第1至3行元素分别为1、2、3、4、5、6、7、8、9。用矩阵形式分别输出互换前、后的数组元素值。
展开
3个回答
展开全部
#include<iostream>
using namespace std;
#define ROW 3
#define COLUMN 3
void swap(int& a,int& b)
{
int temp=a;
a=b;
b=temp;
}
void main()
{
int a[ROW][COLUMN]={{1,2,3},{4,5,6},{7,8,9}};
cout<<"猛键before swap:"<<endl;
for(int i=0;i<ROW;i++)
{
for(int j=0;j<COLUMN;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
for(int row=0;row<ROW;row++)
{
for(int col=0;col<COLUMN;col++)
{
if(col<row)
{
swap(a[row][col],a[col][row]);
}
}
}
cout<<"after swap:"<好备<endl;
for(int i=0;i<ROW;i++)
{
for(int j=0;j<COLUMN;j++)
{
cout<<a[i][j]<<" ";
}
cout<友知毁<endl;
}
}
using namespace std;
#define ROW 3
#define COLUMN 3
void swap(int& a,int& b)
{
int temp=a;
a=b;
b=temp;
}
void main()
{
int a[ROW][COLUMN]={{1,2,3},{4,5,6},{7,8,9}};
cout<<"猛键before swap:"<<endl;
for(int i=0;i<ROW;i++)
{
for(int j=0;j<COLUMN;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
for(int row=0;row<ROW;row++)
{
for(int col=0;col<COLUMN;col++)
{
if(col<row)
{
swap(a[row][col],a[col][row]);
}
}
}
cout<<"after swap:"<好备<endl;
for(int i=0;i<ROW;i++)
{
for(int j=0;j<COLUMN;j++)
{
cout<<a[i][j]<<" ";
}
cout<友知毁<endl;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdafx.h"
#include "conio.h"
#include <iostream>
using namespace std;
void MatrixChain(int* p, int n, int m[7][7],int s[7][7])
{
for(int i=1;i<=n;i++)m[i][i]=0;
for(int r=2;r<=n;r++)
for(int i=1;i<纳御缓=n-r+1;i++)
{
int j=i+r-1;
m[i][j]=m[i+1][j]+p[i-1]*p[i]*p[j];
s[i][j]=i;
for(int k=i+1;k<j;k++)
{
int t=m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j];
if(t<m[i][j])
}
}
}
void Traceback(int i,int j,int s[7][7])
{
if(i==j)return;
Traceback(i,s[i][j],s);
Traceback(s[i][j]+1,j,s);
cout<<"Multiply A"<<i<<","<<s[i][j];
cout<<"and A"洞模<<(s[i][j]+1)<<","<<j<<endl;
}
int main()
{
int p[7]=;
int n=6;
int m[7][7];
int s[7][7];
MatrixChain(p,n,m,s);
Traceback(1,6,s);
getchar();
return 0;
}
你的**c指针不能用 new *c 指针可以new 所以出错 直接用数组就可以了
上面代码我编译过了 绝对可拆悄以通过啊。
#include "conio.h"
#include <iostream>
using namespace std;
void MatrixChain(int* p, int n, int m[7][7],int s[7][7])
{
for(int i=1;i<=n;i++)m[i][i]=0;
for(int r=2;r<=n;r++)
for(int i=1;i<纳御缓=n-r+1;i++)
{
int j=i+r-1;
m[i][j]=m[i+1][j]+p[i-1]*p[i]*p[j];
s[i][j]=i;
for(int k=i+1;k<j;k++)
{
int t=m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j];
if(t<m[i][j])
}
}
}
void Traceback(int i,int j,int s[7][7])
{
if(i==j)return;
Traceback(i,s[i][j],s);
Traceback(s[i][j]+1,j,s);
cout<<"Multiply A"<<i<<","<<s[i][j];
cout<<"and A"洞模<<(s[i][j]+1)<<","<<j<<endl;
}
int main()
{
int p[7]=;
int n=6;
int m[7][7];
int s[7][7];
MatrixChain(p,n,m,s);
Traceback(1,6,s);
getchar();
return 0;
}
你的**c指针不能用 new *c 指针可以new 所以出错 直接用数组就可以了
上面代码我编译过了 绝对可拆悄以通过啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{
int i,j,t,a[3][3]={1,2,3,4,5,6,7,8,9};
printf("Before:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d "汪纤模,a[i][j]);
printf("\n");
}
for(i=1;i<3;i++)
for(j=0;j<困缓i;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
printf("After:\竖派n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
int main()
{
int i,j,t,a[3][3]={1,2,3,4,5,6,7,8,9};
printf("Before:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d "汪纤模,a[i][j]);
printf("\n");
}
for(i=1;i<3;i++)
for(j=0;j<困缓i;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
printf("After:\竖派n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询