大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#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; i3; i++)
{ for(j=0; j3; j++)
printf("[%d,%d] ",a[i][j].x,a[i][j].y);
printf("\n");
}
printf("after:\n");
for(i=0; i3; i++)
for(j=0; ji; j++)
{ t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
for(i=0; i3; i++)
{ for(j=0; j3; j++)
printf("[%d,%d] ",a[i][j].x,a[i][j].y);
printf("\n");
}
return 0;
}
或:
#include stdio.h
struct aaa
{ int x;
int y;
};
void zhuanzhi(struct aaa a[][3])
{ struct aaa t;
int i,j;
for(i=0; i3; i++)
for(j=0; ji; 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; i3; i++)
{ for(j=0; j3; j++)
printf("[%d,%d] ",a[i][j].x,a[i][j].y);
printf("\n");
}
}
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);
zhuanzhi(a);
printf("after:\n");
prt(a);
return 0;
}
在转置函数中,第二个循环的约束条件应该是for(n=m;n5;n++){.....}。因为转置只是把上三角和下三角中的值调换,只用执行上三角交换就好了,如果你把上线都交换了,那就等于没有交换。这属于逻辑错误。
正确程序如下:
void transpose(int a[5][5] )
{
int temp = 0,m,n;
for(m = 0;m 5;m++)
{
for(n = m;n 5;n++)
{
temp = a[m][n];
a[m][n] = a[n][m];
a[n][m] = temp;
}
}
}
#include stdio.h
#include string.h
int main()
{
char test[] = "QQ:2-3-6-4-6-2-2-4-2-3";
char *p = test, *q = test + strlen(test) - 1;
printf("翻转前:%s\n", test);
while(p q) {
char c = *p;
*p++ = *q;
*q-- = c;
}
printf("翻转后:%s\n", test);
return 0;
}