C语言二维数组倒序输出
时间: 2023-11-23 13:57:12 浏览: 40
以下是C语言二维数组倒序输出的示例代码:
```c
#include <stdio.h>
int main()
{
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int i, j;
printf("Original array:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
printf("Reversed array:\n");
for (i = 2; i >= 0; i--) {
for (j = 2; j >= 0; j--) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
该程序定义了一个3x3的二维数组,先输出原始数组,再输出倒序数组。在输出倒序数组时,外层循环从2到0,内层循环也从2到0,这样就可以实现倒序输出。
--相关问题--:
1. 如何在C语言中实现字符串逆序?
2. 如何在C语言中实现二维数组的转置?
3. 如何在C语言中实现数组
相关问题
求n的阶乘c语言二维数组
以下是使用C语言二维数组求n的阶乘的代码:
```c
#include <stdio.h>
int main() {
int n = 5; // 求5的阶乘
int arr[100][100]; // 定义二维数组
int i, j, k, carry = 0, len = 1;
arr[0][0] = 1; // 初始化数组
for (i = 2; i <= n; i++) { // 从2开始循环
for (j = 0; j < len; j++) { // 遍历数组
arr[i][j] = arr[i - 1][j] * i + carry; // 计算阶乘
carry = arr[i][j] / 10; // 进位
arr[i][j] %= 10; // 取余
}
while (carry) { // 处理进位
arr[i][len++] = carry % 10;
carry /= 10;
}
}
printf("%d! = ", n);
for (k = len - 1; k >= 0; k--) { // 倒序输出结果
printf("%d", arr[n][k]);
}
return 0;
}
```
求10000的阶乘c语言二维数组
根据提供的两个参考程序,可以使用一维数组来求解大整数的阶乘。但是,由于10000的阶乘已经超出了一维数组的存储范围,因此需要使用二维数组来存储结果。具体实现方法如下:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 10000 // 数组最大长度
int main() {
int a[MAX_LEN][MAX_LEN]; // 定义二维数组
memset(a, 0, sizeof(a)); // 初始化为0
a[0][0] = 1; // 初始值为1
int len = 1; // 数组长度
for (int i = 1; i <= 10000; i++) {
int carry = 0; // 进位
for (int j = 0; j < len; j++) {
int temp = a[i - 1][j] * i + carry; // 计算乘积
a[i][j] = temp % 10; // 取个位数
carry = temp / 10; // 计算进位
}
while (carry > 0) { // 处理最高位的进位
a[i][len++] = carry % 10;
carry /= 10;
}
}
for (int i = len - 1; i >= 0; i--) { // 倒序输出结果
printf("%d", a[10000][i]);
}
return 0;
}
```