C++动态创建一维数组,实现n*n矩阵转置
我是这样做的,输出的是对的,DevC++编译器过了,VSC++不能通过。老师说我的不对。#include<iostream>usingnamespacestd;intma...
我是这样做的,输出的是对的,Dev C++编译器过了 ,VS C++不能通过。
老师说我的不对。
#include<iostream>
using namespace std;
int main()
{
int *p,N;
p=new int[N];
cin>>N;
int i,j,a[N][N],temp;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
cin>>a[i][j];
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(i>j)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
cout<<a[i][j]<<"";
cout<<endl;
}
delete p;
}
请问该怎么改,或者怎么做,有具体代码最好了。 展开
老师说我的不对。
#include<iostream>
using namespace std;
int main()
{
int *p,N;
p=new int[N];
cin>>N;
int i,j,a[N][N],temp;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
cin>>a[i][j];
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(i>j)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
cout<<a[i][j]<<"";
cout<<endl;
}
delete p;
}
请问该怎么改,或者怎么做,有具体代码最好了。 展开
展开全部
有个问题,最后删除动态数组应该是delete[] p;
然后VC++编译器规定二维数组的维数必须是常量,你那个N是变量,GCC可以
然后VC++编译器规定二维数组的维数必须是常量,你那个N是变量,GCC可以
更多追问追答
追问
那怎样实现可以自己输入一个N,然后用N动态分配数组,从而实现矩阵转置?用C++的
追答
//一维数组实现n阶矩阵转置
#include<cstdio>
int main()
{
int *a,n;
while(scanf("%d",&n)&&n)
{
a=new int[n*n+1];
for(int i=1;i<=n*n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
{
int t=a[(j-1)*n+i];
a[(j-1)*n+i]=a[(i-1)*n+j];
a[(i-1)*n+j]=t;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
printf("%d ",a[(i-1)*n+j]);
printf("\n");
}
delete[] a;
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
- #include<iostream>
- using namespace std;
- #define size 2
- int multi(int *a , int *b , int N)
- {
- int i , j , k , temp;
- int *c = (int*)malloc(N * N);
- for(i = 0 ; i < N ; i++)
- {
- for(j = 0 ; j < N ; j++)
- {
- temp = i * N + j;
- *(c + temp) = 0;
- for(k = 0 ; k < N ; k++)
- {
- *(c + temp) += a[i * N + k] * b[k * N + j];
- }
- cout<<*(c + temp)<<" ";
- }
- }
- return *c;
- }
- int main()
- {
- int a[size * size] = {2 , 1 , 4 , 3};
- int b[size * size] = {1 , -1 , 3 , 2};
- multi(a , b , size);
- return 0;
- }
追问
可以稍微解释下吗,那个size不是自己要输入的吗?老师说要用new
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询