#include<stdio.h> main() { int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11}; int *p,q; int i,j; p=&a[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) { q=*(p+i*4+j); *(p+i*4+j)=*(p+j*3+i); *(p+j*3+i)=q; } for(i=0;i<4;i++) { for(j=0;j<3;j++) printf("%4d",*(p+i*3+j)); printf("\n");} }
时间: 2023-12-08 19:03:14 浏览: 126
这是一个二维数组转置的程序,代码如下:
```c
#include <stdio.h>
int main() {
int a[3][4] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
int *p, q;
int i, j;
p = &a[0][0];
for (i = 0; i < 3; i++)
for (j = 0; j < 4; j++) {
q = *(p + i * 4 + j);
*(p + i * 4 + j) = *(p + j * 3 + i);
*(p + j * 3 + i) = q;
}
for (i = 0; i < 4; i++) {
for (j = 0; j < 3; j++)
printf("%4d", *(p + i * 3 + j));
printf("\n");
}
return 0;
}
```
该程序首先定义了一个 $3\times 4$ 的二维数组 $a$,并将其初始化。然后定义了一个指向 $a$ 的指针 $p$,并将其指向 $a$ 的第一个元素。
接下来,程序使用双重循环遍历二维数组 $a$,并通过指针操作将其转置。具体来说,程序将 $a_{i,j}$ 和 $a_{j,i}$ 交换了位置。
最后,程序再次使用双重循环遍历转置后的二维数组,将其输出到屏幕上。
相关问题
#include <stdio.h> #include <math.h> int main() { int a
#include <stdio.h> 是一个C语言的头文件,它包含了一些输入输出函数的声明,比如printf和scanf等。而#include <math.h> 是一个数学库的头文件,它包含了一些数学函数的声明,比如sqrt和sin等。
在你给出的代码中,int main() 是程序的入口函数,它表示程序从这里开始执行。在main函数中,定义了一个整型变量a,但是没有给它赋初值。
如果你想要使用printf函数来输出一些信息,可以在main函数中添加代码,比如:
int main()
{
int a = 10;
printf("a的值是:%d\n", a);
return 0;
}
这样就可以输出a的值为10。你可以根据需要修改a的值和输出的格式。
#include <stdio.h>
#include <stdio.h> 是C语言中的一个预处理指令,它告诉编译器在编译过程中要包含stdio.h头文件。stdio.h是标准输入输出库的头文件,其中包含了一些用于输入输出的函数和常量的声明。
通过包含stdio.h头文件,我们可以使用一些常用的输入输出函数,比如printf和scanf。printf函数用于将格式化的数据输出到标准输出(通常是显示器),而scanf函数用于从标准输入(通常是键盘)读取格式化的数据。
下面是一个简单的示例代码,演示了如何使用stdio.h中的printf函数:
#include <stdio.h>
int main() {
int num = 10;
printf("The value of num is %d\n", num);
return 0;
}
在上面的代码中,我们首先包含了stdio.h头文件。然后,在main函数中,我们定义了一个整型变量num,并将其初始化为10。接下来,我们使用printf函数将num的值输出到标准输出。%d是一个格式化占位符,用于表示要输出的整数值。
当我们运行上面的代码时,它会输出以下内容:
The value of num is 10
这就是#include <stdio.h> 的作用和使用方法。它使我们能够使用标准输入输出函数来进行数据的输入和输出操作。