您的位置:首页 > 编程语言 > C语言/C++

C语言的指针好难!

2015-09-26 15:10 363 查看
今天被矩阵和指针虐的死去活来,直接从一个不知道矩阵是什么鬼的小伙子成了会用程序实现矩阵加减乘除还有转置的死宅@_@。之前一直实现不了的自由的矩阵乘法今天终于实现了……o(︶︿︶)o 唉,也不知道能再往前走到哪里,等下还打算看一下MIT的公开课,希望公开课能助我走得更远!

照例的代码片

/*
Name: 转置矩阵
Copyright: 本人保留一切权利
Author: 胡一波
Date: 26/09/15 15:03
Description: 如名字
*/

#include<stdio.h>
#include<stdlib.h>
int main()
{
int *A,*At;
int a,b,c,M,N;

printf("请输入矩阵A的维度(M,N):");
printf("\nM=");
scanf("%d", &M);
printf("N=");
scanf("%d", &N);

A=(int*)malloc(M*N*sizeof(int));
At=(int*)malloc(M*N*sizeof(int));
for(a=0; a<M; a++)//行数
{
for(b=0; b<N; b++)//列数
{
printf("A[%d][%d]=", a, b);
scanf("%d", &A[a*N+b]);
}
}
for(a=0; a<N; a++)//矩阵置换开始
for(b=0; b<M; b++)
At[a*M+b]=A[b*N+a];
printf("[矩阵A]\n");
for(a=0; a<M; a++)
{
for(b=0; b<N; b++)
printf("%d\t", A[a*N+b]);
puts("\n");
}
printf("[矩阵At]\n");
for(a=0; a<N; a++)
{
for(b=0; b<M; b++)
printf("%d\t", At[a*M+b]);
puts("\n");
}

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 指针