用C语言编程将二维数组中每一列右移。最右边一列移至最左边。(假设二维数组不超过10*10) 要求:不能直接输出,要改动数据在二维数组中的存储位置。 提示:先将最右边一个数据移至临时变量,其他数据全部右移一位。最后再把移出的数据放在最左边位置。 ***输入提示: "请输入行数:" "请输入列数:" "请输入%d*%d个数据:\n" ***输入格式:"%d" ***输出提示: "结果是 :\n" ***输出格式: "%6d" 程序运行示例: 请输入行数:2↙ 请输入列数:3↙ 请输入2*3个数据: ↙ 1 2 3↙ 3 4 5↙ 结果是:↙ 3 1 2↙ 5 3 4↙
时间: 2024-02-24 07:55:57 浏览: 60
下面是使用 C 语言的程序实现:
```C
#include <stdio.h>
int main() {
int n, m;
printf("请输入行数:");
scanf("%d", &n);
printf("请输入列数:");
scanf("%d", &m);
int a[10][10];
printf("请输入%d*%d个数据:\n", n, m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &a[i][j]);
}
}
// 右移每一列
for (int j = m - 1; j > 0; j--) {
// 取出最右边一列
int temp = a[0][j];
// 其他数据右移
for (int i = 0; i < n; i++) {
a[i][j] = a[i][j - 1];
}
// 将最右边的数据放到最左边
a[0][0] = temp;
}
// 输出结果
printf("结果是:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%6d", a[i][j]);
}
printf("\n");
}
return 0;
}
```
该程序与前一个程序的实现方法基本一致,只是使用了 C 语言的输入输出方式。输入时使用 scanf 函数读入数据,输出时使用 printf 函数输出数据,输出时同样使用了 %6d 格式化输出,以保证对齐。
阅读全文