c语言练习之路(二阶方阵的n次方)
c语言吧
全部回复
仅看楼主
level 11
歆沣 楼主
#include<stdio.h>
int main()
{
double a[2][2],b[2][2],c[2][2];
int n,i,j,t;
for(;;)
{
printf("矩阵A为一个二阶方阵,请输入A:\n");
for(i=0;i<=1;i++)
for(j=0;j<=1;j++)
scanf("%lf",&a[i][j]);
printf("矩阵B为矩阵A的n次方(n为非负数),请输入n:");
scanf("%d",&n);
printf("矩阵A为:\n");
for(i=0;i<=1;i++)
{
for(j=0;j<=1;j++)
{
printf("%15.0lf",a[i][j]);
}
printf("\n\n\n");
}
for(i=0;i<=1;i++)
for(j=0;j<=1;j++)
c[i][j]=a[i][j];
if(n==0)
for(i=0;i<=1;i++)
for(j=0;j<=1;j++)
b[i][j]=1;
else if(n==1)
for(i=0;i<=1;i++)
for(j=0;j<=1;j++)
b[i][j]=a[i][j];
else
{
for(t=1;t<n;t++)
{
for(i=0;i<=1;i++)
for(j=0;j<=1;j++)
b[i][j]=c[i][j];
for(i=0;i<=1;i++)
for(j=0;j<=1;j++)
c[i][j]=b[i][0]*a[0][j]+b[i][1]*a[1][j];
}
for(i=0;i<=1;i++)
for(j=0;j<=1;j++)
b[i][j]=c[i][j];
}
printf("\n矩阵B为:\n");
for(i=0;i<=1;i++)
{
for(j=0;j<=1;j++)
{
printf("%25.0lf",b[i][j]);
}
printf("\n\n\n");
}
printf("\n");
}
return 0;
}
(c语言交流群:251975693,欢迎所有学习c语言的同道们的加入,有了你们,我们更加精彩!)
2013年03月31日 07点03分 1
level 13
[礼物]看标题我还以为会有快速幂乘的东西。
2013年03月31日 07点03分 2
看到有人回复,我就已经很好奇了...
2013年03月31日 07点03分
回复 折心灬小轩 :为菜鸟留一点学习的资料,每个人都是从菜鸟过来的,你懂的你可以不看,但请你尊重
2013年03月31日 09点03分
回复 歆沣 :我又不尊重你,笑..
2013年03月31日 09点03分
回复 折心灬小轩 :呵呵,想必你是自以为自己c学的还可以,便不屑于这点简单代码。告诉你,这代码我两年前写的,那阁下何不把你所谓的牛逼代码贴出来呢
2013年03月31日 09点03分
level 11
有个问题,你的第一个for循环有什么意义的啊?
2013年03月31日 09点03分 3
加个死循环,是为了让窗口不会以输出结果立马就消失了
2013年04月01日 04点04分
level 3
注释简单写下啊
2013年03月31日 09点03分 4
level 11
scanf后面接scanf不会出错?
2013年04月01日 04点04分 5
1