关于将二维数组中的数互换的问题
我写了一个函数就是把二维数组中的数互换,比如:a[ i ] [ j ] = a [ j ] [ i ]; 但是一直没用比如以下是代码:
#include <stdio.h>
int main(void)
{
int num;
int i = 0, j = 0;
void zhuanzhi(int a[]);
printf("Please input nine numbers:\n");
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 2; j++)
{
printf("num[%d][%d] = ", i, j);
scanf("%d", &num);
}
}
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 2; j++)
{
printf("%5d", num);
}
printf("\n");
}
printf("\n");
zhuanzhi(num);
return 0;
}
void zhuanzhi(int a[]) /*定义转置数组函数*/
{
int i, j, temp;
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 2; j++)
{
temp = a;
a = a;
a = temp;
}
}
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 2; j++)
{
printf("%5d", a);
}
printf("\n");
}
}
本帖最后由 曾经的肆无忌惮 于 2015-2-1 22:54 编辑
for (j = i+1; j <= 2; j++)
{
temp = a;
a = a;
a = temp;
}
交换的第二层循环写错了,应该从i+1开始,从0开始就交换两次了
比如i = 1,j = 2时,交换一次
i = 2,j = 1时,又将其交换回来了 曾经的肆无忌惮 发表于 2015-2-1 22:51
交换的第二层循环写错了,应该从i+1开始,从0开始就交换两次了
比如i = 1,j = 2时,交换一次
...
恩,懂了谢谢
页:
[1]