c語言轉置
『壹』 c語言矩陣轉置
//#include "stdafx.h" //////////////VC中沒有該頭文件
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
void shuru( int a[5][5]);
void zhuan(int a[5][5]);
int main(int argc, char* argv[])
{
int a[5][5];
shuru(a);//////////////////a[5][5]改成a
zhuan(a);///////////////a[5][5]改成a
return 0;
}
void shuru( int a[5][5])
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{a[i][j]=rand()%101;}/////////////random(101)改成rand()%101,取0-101的隨機數
}
printf("chushi:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
void zhuan(int a[5][5])
{
int t,i,j;
for(i=0;i<5;i++)
{
for(j=i;j<5;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
printf("wancheng:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
『貳』 c語言矩陣轉置和快速轉置怎麼求
sinz=[e^(iz)-e^(-iz)]/2i=2
==> e^(iz)-e^(-iz)=4i
設x=e^(iz),那麼有
x-1/x=4i
==> x^2-4ix-1=0
x=[4i±√(-16+4)]/2
x=(2±√3)i
x=e^(iz)=(2±√3)i
==> iz=Ln[(2±√3)i]
==> iz=ln|(2±√3)i|+iArg((2±√3)i)+i2nπ
==> iz=ln(2±√3)+iπ/2+i2nπ
==> z=-iln(2±√3)+π/2+2nπ
這里|*|代表求模的意思,Arg為輻角主值,這里,(2±√3)i對應的角度是π/2。
『叄』 c程序數組的轉置
你的數組轉置程序,主要有兩個問題,
一 C語言二維數組的參數聲明和傳參不正確
二 二維數組的轉置,只需要以主對角線為軸翻轉一次就行了,
因此,transport函數中for_j循環的終止條件應該為j<i;
改正後的數組轉置C語言程序如下(改動的地方見注釋)
#include<stdio.h>
int main()
{
int a[3][3];
int i,j;
void transport(int a[][3]);//這里把返回值類型int改成void,把a[3][3]改成a[][3]
printf("input:");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
scanf_s("%d",&a[i][j]);//這里建議把scanf_s改成scanf
}
transport(a);//這里把a[3][3]改成a
for(i=0;i<3;i++)
{//這里加大括弧
for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf(" ");//這里加一句,換行
}//這里加大括弧
return 0;
}
void transport(int a[][3])//這里把返回值類型int改成void,把a[3][3]改成a[][3]
{
int i,j,t;
for(i=0;i<3;i++)
for(j=0;j<i;j++)//這里把j<3;改成j<i;
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
『肆』 C語言編程:N*N方陣的轉置
#include<stdio.h>
int main()
{
int n,t,a[100][100],i,j; scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++) scanf("%d",&a[i][j]);
printf("轉換後: ");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j==0)
printf("%d",a[j][i]); else printf(" %d",a[j][i]);
}
printf(" ");
}}}
(4)c語言轉置擴展閱讀:
C語言書寫規則:
1、一個說明或一個語句佔一行。
2、用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3、低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。
網路-c語言
『伍』 c語言 矩陣轉置的編寫
#include "stdio.h"
void main()
{
void zhuan(int array[2][3],int b[3][2]);
int array[2][3],b[3][2]; int i,j;
printf("input:\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
scanf("%d",&array[i][j]);
}
printf("\n");
zhuan(array,b);
printf("\n");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%d",b[i][j]);
printf("\n");
}
}
void zhuan(int array[2][3],int b[3][2]) //轉置函數邏輯錯誤,沒那麼麻煩,直接轉就是了!
{
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
b[j][i]=array[i][j];
}
}
『陸』 C語言為什麼數不能夠轉置
這樣修改就可以了:
#include <iostream>
int main()
{ int a[3][3] = { {1,2,3},{4,5,6},{7,8,9} };
for (int i = 0; i <= 2; i++)
{ for (int k = 0; k <= 2; k++)
{ printf("%d ", a[i][k]);
}
printf(" ");
}
void T(int x[3][3]);
T(a);
}
void T(int x[3][3])
{ for (int i = 0; i <= 2; i++)
{ for (int k = 0; k < i; k++) //就改了這一行
{ if (i != k)
{ int m = x[i][k];
x[i][k] = x[k][i];
x[k][i] = m;
}
}
}
printf("轉置後的行列式為: ");
for (int i = 0; i <= 2; i++)
{ for (int k = 0; k <= 2; k++)
{ printf("%d ", x[i][k]);
}
printf(" ");
}
}
『柒』 c語言數組轉置
//try it 試試看
#include <stdio.h>
void transpose( int a[6][6],int n)
{
int i,j,temp;
for(i=0;i<n;i++)
for (j=0;j<i;j++)
{temp=a[i][j];a[i][j]=a[j][i];a[j][i]=temp;}
}
void main()
{
int i,j,a[6][6],n;
printf("please input the 維度<1-6>:");
scanf("%d",&n);
printf("請輸入數組元素:\n");
for (i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
transpose(a,n);
printf("操作後的數組為:\n");
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);printf("\n");
}
『捌』 c語言數組轉置問題
改為「scanf("%d",&a[i][j] ); 」
你這個程序只是改變了輸出順序(在輸出上完成了轉置),而實際在內存的存儲數據沒有發生任何變化。
『玖』 c語言如何通過定義函數來轉置矩陣
#include <stdio.h>
int main()
{ struct aaa
{ int x;
int y;
};
struct aaa t,a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};
int i,j;
for(i=0; i<3; i++)
{ for(j=0; j<3; j++)
printf("[%d,%d] ",a[i][j].x,a[i][j].y);
printf(" ");
}
printf("after: ");
for(i=0; i<3; i++)
for(j=0; j<i; j++)
{ t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
for(i=0; i<3; i++)
{ for(j=0; j<3; j++)
printf("[%d,%d] ",a[i][j].x,a[i][j].y);
printf(" ");
}
return 0;
}
或:
#include <stdio.h>
struct aaa
{ int x;
int y;
};
void zhuan(struct aaa a[][3])
{ struct aaa t;
int i,j;
for(i=0; i<3; i++)
for(j=0; j<i; j++)
{ t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
void prt(struct aaa a[][3])
{ int i,j;
for(i=0; i<3; i++)
{ for(j=0; j<3; j++)
printf("[%d,%d] ",a[i][j].x,a[i][j].y);
printf(" ");
}
}
int main()
{ struct aaa a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};
prt(a);
zhuan(a);
printf("after: ");
prt(a);
return 0;
}
『拾』 C語言的矩陣轉置
#include "StdAfx.h"
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define length 3//指定長度
/*裝置矩陣*/
void transposition(int Array[length][length])
{
int ArrayTemp[length][length];
for (int i = 0;i < length;i++)
{
for (int j = 0;j < length;j++)
{
ArrayTemp[j][i] = Array[i][j];
}
}
for (i = 0;i < length;i++)
{
for (int o =0;o < length;o++)
{
Array[i][o] = ArrayTemp[i][o];
}
}
return;
}
main()
{
int i,j;
/*printf("please input length\n");
scanf("%d",&length)*/
int Array[length][length];
printf("please input transposition\n");
for (i = 0;i < length;i++)
{
for (j = 0;j < length;j++)
{
scanf("%d",&Array[i][j]);
}
}
for (i = 0;i < length;i++)
{
for (j = 0;j < length;j++)
{
printf("%3d",Array[i][j]);
}
printf("\n");
}
printf("\n\n");
transposition(Array);
for (i = 0;i < length;i++)
{
for (j = 0;j < length;j++)
{
printf("%3d",Array[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}