本文目錄一覽:
C語言 正方形旋轉矩陣源程序寫法
這裡以順時針旋轉90°為例:
#includestdio.h#includestdlib.h#includetime.h#define N 4void main(){ int i,j; int a[N*N],b[N][N];//這裡設置旋轉為4*4的矩形,自己在這裡改成其它的矩形 int *p=a;//用指針來指向這個一維數組。這樣在旋轉賦值的時候會輕鬆很多 srand(time(NULL)); for(i=0;iN*N;i++) { a[i]=rand()%100;//隨機生成0~99 printf(“%d\t”,a[i]); if((i+1)%4==0) printf(“\n”); } for(i=N-1;i=0;i–) //旋轉賦值,這裡可修改旋轉的方向和角度 for(j=0;jN;j++,p++) b[j][i]=*p; printf(“順時針旋轉90度後:\n”); for(i=0;iN;i++) {for(j=0;jN;j++) printf(“%d\t”,b[i][j]); printf(“\n”); } }
這種旋轉矩形的,個人建議生成一維數組,用指針指向改數組,再用指針來賦值;也可生成二維數組,再定義數組指針來指向,這樣稍麻煩一些些。
C語言中如何將一個正方形矩陣旋轉45度
首先確定繞那一點旋轉,讓後確定各點的坐標,也就是三個點,YC’=-XC*sin(45)
字母旋轉矩陣!求高手!C語言編寫……
先說演算法吧,首先在要輸出的矩陣外側加「厚一層」(防止越界),最外層所有字元全部寫成「+」,裡層寫成『?』,如5X8就變成7X10,然後從裡層的第一個開始寫數,設置一個頭指針寫成A(如到在z,下一個寫A),當它準備跳到下一位的時候,用循環遍歷這個以這個字元為中心的靠的最近8個數當發現一個橫縱坐標的和與這個字元差距最小的位置,且該位是「?」的是侯,就向這一位寫入下一個字元,注意如果比較兩者坐標和相等,則大數優先(這是防止在在最外層一列出錯,)最後當一個字元的要寫入的後一位不是「?」的時候,停下來,說明滿了,好了說到這兒你應該會了吧,最好自己寫有感覺
c語言 旋轉矩陣演算法
#include stdlib.h
#include stdio.h
#define N 5
int min(int a,int b,int c,int d)
{
a=ab?a:b;
a=ac?a:c;
a=ad?a:d;
return a;
}
int main()
{
int arr[N][N],i,j;
for(i=0;iN;i++)
{
for(j=0;jN;j++)
{
arr[i][j]=min(i,j,N-1-i,N-1-j);
printf(“%d “,arr[i][j]);
}
printf(“\n”);
}
system(“pause”);
return 0;
}
編程:旋轉方陣(nton);
這個問題通用的解決方法是先把你初始矩陣以圖中1 2 3 4 ……這樣的順序導入到一個一維數組中,然後再把這個一維數組以同樣的方式導出為一個和上面格式一樣的矩陣中,問題的關鍵在於如何以這樣的方式遍列這個矩陣。以C語言來解決這個問題,我只寫如何遍列這個矩陣,將它導入到一個一維數組中,餘下的就簡單了。以上你這個矩陣我把它定義為一個二維數組,就定義在一個M[6][6]二維數組中一維數組是A[]
原創文章,作者:FPCPX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/317046.html