- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言的矩阵经典运算杂谈
C语言的矩阵经典运算杂谈 2010-01-26 11:53:20 阅读610 评论0 字号:大中小 订阅
From:/hailwater/blog/item/6723d0313493e7a25fdf0e61.html
#include stdio.h
#include stdlib.h
#include time.h
#include math.h
#include string.h
void init(int *a,int m,int n)
{//随机产生函数
srand(time(NULL));
int i,j;
for(i=0;im;i++)
{
for(j=0;jn;j++)
*(a+i*n+j)=rand()%10+1;
}
}
void input(int *a,int m,int n)
{//用户输入函数
int i,j;
for(i=0;im;i++)
{
for(j=0;jn;j++)
scanf(%d,a+i*n+j);
}
}
void choose(int *a,int m,int n)
{//是随机产生还是用户输入
int i;
printf(是想输入矩阵(输入0)还是随机产生(输入1):\);
scanf(%d,i);
switch(i)
{
case 1:init(a,m,n);
break;
case 0:printf(请输入%d个数\,m*n);
input(a,m,n);
break;
default:printf(你的输入有误,请重新输入:\);
break;
}
}
void print(int *a,int m,int n)
{//打印函数
int i,j;
for(i=0;im;i++)
{
for(j=0;jn;j++)
printf(%4d,*(a+i*n+j));
printf(\);
}
}
//矩阵关于y轴翻转
void juzheny(int *a,int *b,int m,int n)
{
int i,j;
for(i=0;im;i++)
{
for(j=0;jn;j++)
*(b+i*n+j)=*(a+i*n+n-j-1);
}
}
//矩阵关于x轴翻转
void juzhenx(int *a,int *b,int m,int n)
{
int i,j;
for(i=0;im;i++)
{
for(j=0;jn;j++)
*(b+i*n+j)=*(a+(m-i-1)*n+j);
}
}
//顺时针旋转90°,逆时针旋转270°
void juzhens(int *a,int *b,int m,int n)
{
int i,j;
for(i=0;in;i++)
{
for(j=0;jm;j++)
*(b+i*m+j)=*(a+(m-j-1)*n+i);
}
}
//逆时针旋转90°,顺时针旋转270°
void juzhenn(int *a,int *b,int m,int n)
{
int i,j;
for(i=0;in;i++)
{
for(j=0;jm;j++)
*(b+i*m+j)=*(a+j*n+(n-i-1));
}
}
// 顺/逆时针旋转180°
void juzhens1(int *a,int *b,int m,int n)
{
int i,j;
for(i=0;im;i++)
{
for(j=0;jn;j++)
*(b+i*n+j)=*(a+(m-i-1)*n+n-j-1);
}
}
//矩阵转置
void juzhenzz(int *a,int *b,int m,int n)
{
int i,j;
for(i=0;in;i++)
{
for(j=0;jm;j++)
*(b+i*m+j)=*(a+j*n+i);
}
}
//任意修改矩阵的元素值
void juzhenyz(int *a,int i,int j,int x,int m,int n)
{
*(a+i*n+j)=x;
}
void jiemian()
{
int i;
for(i=0;i80;i++)
printf(*);
printf(\);
printf( );
}
void menu()
{//菜单界面初始化
int i;
for(i=1;i3;i++)
printf(\);
printf(\\\关于一些矩阵方面的应用!\);
for(i=0;i80;i++)
printf(=);
printf(\0.查询矩阵中元素所在的行号和列号。 1.任意修改矩阵的元素值。\);
printf(\2.矩阵转置。
文档评论(0)