c语言旋转函数 c语言跳转函数

C语言编程。编写一个实现将3*3的二维数组表示的方阵进行顺时针旋转90°函数rotate(),并编写主函数验证之

#include "stdlib.h"

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都网站制作、扶沟网络推广、小程序制作、扶沟网络营销、扶沟企业策划、扶沟品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供扶沟建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

void rotate(int (*a)[3])

{

int i,j;

int temp[3][3];

for (i=0;i3;i++)

{

for (j=0;j3;j++)

temp[j][2-i]=a[i][j];

}

for (i=0;i3;i++)

{

for (j=0;j3;j++)

a[i][j]= temp[i][j];

}

}

main()

{

int i,j;

int a[3][3]= {11,22,33, 44,55,66, 77,88,99};

rotate(a);

printf(“after transform\n”);

for (i=0;i3;i++)

{

for (j=0;j3;j++)

printf(“%d\t”,a[i][j]);

}

用c语言编程三角形绕一点旋转九十度怎么做

A(ax, ay) B(bx, by) C(cx, cy) 移动后A(ax0, ay0)... 1)ax = r*cosα ay = r*sinα ax0 = r*cos(α+90) ay0=r*sin(α+90) 用三角函数展开就ok了 2)旋转90度就是坐标点从一个象限旋转到另一个象限,先判断正负,再将横纵坐标交换并根据正负情况乘以-1或者1 这个问题就是高中解析几何的旋转问题。或者图形学里的二维图形旋转问题

不用工作数组,编写实现将已知方阵逆时针旋转 90 度 的函数。旋转可从外到内分层,逐层完成旋转(c语言)

#include stdio.h

#define N 5

void myturn(int a[N][N], int x, int y, int sx, int sy)

{

int dy = N - 1 - x;

int dx = y;

int val = a[y][x];

if (dx == sx  dy == sy) {

a[sy][sx] = a[y][x];

return;

} else {

myturn(a, dx, dy, sx, sy);

a[dy][dx] = val;

}

}

void turn90(int a[N][N])

{

int s = 0, e = N - 1;

int i;

int l = 0;

while(s  e) {

for(i = s; i  e; ++i)

myturn(a, i, l, i, l);

++l;

++s;

--e;

}

}

int main()

{

int a[N][N] = {1,2,3,4,5, 6,7,8,9,10,

11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25};

int i, j;

turn90(a);

for(i = 0; i  N; ++i) {

for(j = 0; j  N; ++j)

printf("%d\t", a[i][j]);

putchar('\n');

}

return 0;

}

C语言:不用数组,用递归函数解决旋转方正问题,大小1~9左起右旋。咋编?

早先编过一个左旋的,改一下给你了——

代码文本:

#include "stdio.h"

int fun(int x, int y, int lt, int n){

if(!x)

return lt+y;

else if(!y)

return lt+4*(n-1)-x;

else if(y==n-1)

return lt+n+x-1;

else if(x==n-1)

return lt+3*(n-1)-y;

else

return fun(x-1,y-1,lt+4*(n-1),n-2);

}

int main(int argc,char *argv[]){

int n, i, j;

printf("Please enter n(int 0n10)...\nn=");

if(scanf("%d", n)==1 n0 n10){

for(i=0;in;i++){

for(j=0;jn;++j)

printf("%2d ", fun(i,j,1,n));

putchar('\n');

}

}

else

printf("Input error, exit...\n");

return 0;

}

C语言写俄罗斯方块旋转算法

问题描述不完整,给你我作业里德旋转函数好了,//...#define LONG_SIZE 15

#define WIDE_SIZE 10//...char img[LONG_SIZE][WIDE_SIZE]; /*定义游戏区方块移动范围*/

int x_[4],y_[4],x,y; /*存放移动方块在游戏区的位置序号和方块的坐标*///...void rotate() /*旋转*/

{

int tmx[4],tmy[4];

int tf=1;

int i;

int k;

if((x_[0]==x_[1])(x_[2]==x_[3])(y_[0]==y_[2])(y_[1]==y_[3])) /*排除"田"字形*/

return;

for(i=0;i4;i++)

img[x_[i]][y_[i]]=0;

for(i=0;i4;i++)

{ tmx[i]=x+(y_[i]-y);

tmy[i]=y-(x_[i]-x);

if(tmx[i]0||tmx[i]LONG_SIZE-1)

{

tf=0;

break;

}

if(tmy[i]0||tmy[i]WIDE_SIZE-1)

{

tf=0;

break;

}

if((tmx[i]==x_[i])||(tmy[i]==y_[i]))

{

if(tmx[i]==x_[i])

{ if(img[tmx[i]][tmy[i]]==1||img[tmx[i]][y]==1)

{

tf=0;

break;

}

}

else if(tmy[i]==y_[i])

{

if(img[tmx[i]][tmy[i]]==1||img[x][tmy[i]]==1)

{

tf=0;

break;

}

}

else continue;

}

if((tmx[i]x_[i]tmy[i]y_[i])||(tmx[i]x_[i]tmy[i]y_[i]))

k=1;

else k=0;

while(tmx[i]!=x_[i]||tmy[i]!=y_[i])

{ if(img[tmx[i]][tmy[i]]==1)

{

tf=0;

break;

}

if(k%2==0)

tmx[i]x_[i]?tmx[i]++:tmx[i]--;

else

tmy[i]y_[i]?tmy[i]++:tmy[i]--;

k++;

}

}

if(tf)

{

for(i=0;i4;i++)

{

tmx[i]=x+(y_[i]-y);

tmy[i]=y-(x_[i]-x);

x_[i]=tmx[i];

y_[i]=tmy[i];

}

}

for(i=0;i4;i++)

img[x_[i]][y_[i]]=1;

} 几个月前写的,可能因为之前的水平原因代码有点乱(现在懒的编),不过是可行的..

C语言程序设计:不用工作数组,分别编写实现将已知方程旋转90度的函数 旋转可从外到内分层,逐层完成

C语言程序设计

C语言程序设计

题目定了吗,需要写多少iz呢


本文名称:c语言旋转函数 c语言跳转函数
标题来源:http://azwzsj.com/article/hijjgo.html