C 二维矩阵中右移动部件
我想得到你的帮助,了解并完成我的计划 这就是我要做的: “您必须练习以下程序:C 二维矩阵中右移动部件,c,arrays,matrix,C,Arrays,Matrix,我想得到你的帮助,了解并完成我的计划 这就是我要做的: “您必须练习以下程序: 首先.一个吸收的二维整数arr[M][N].M-行数N-列数。(从用户处收到矩阵大小) 程序使用辅助功能“shift”移动数值矩阵的右一位,如图所示(输入2而不是1,输入3而不是2,输入4而不是3,…输入20而不是19,输入第一位20)。 Shift必须编写一个函数,并在示例矩阵循环中调用她三次……” 范例 我的问题是: 我不知道如何做矩阵二维整数数组,那里的大小是由用户输入的。我只知道行和列的大小 我的功能与
首先.一个吸收的二维整数arr[M][N].M-行数N-列数。(从用户处收到矩阵大小)
程序使用辅助功能“shift”移动数值矩阵的右一位,如图所示(输入2而不是1,输入3而不是2,输入4而不是3,…输入20而不是19,输入第一位20)。
Shift必须编写一个函数,并在示例矩阵循环中调用她三次……” 范例 我的问题是:
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#define M 4
#define N 5
void shift (int arr[M][N], int length);
void main()
{
int arr[M][N];
int i,j,length;
printf("Enter %d rows \n",M);
for (i=0 ; i<M ; i++ )
{
printf("Enter %d numbers:\n",N);
for(j=0 ; j<N ; j++ )
{
scanf("%d" , &arr[i][j] );
}
length=N+M;
}
shift (arr,length);
system("pause");
return ;
}
void shift (int arr[M][N], int length)
{
int i,j,temp;
temp=arr[0][0];
for(i=0; i<M; i++)
{
for(j=0; j<N-1 ; j++)
{
printf("%d ",arr[i][j]);
}
arr[i][j]=temp;
printf("\n");
}
}
#包括“stdio.h”
#包括“conio.h”
#包括“stdlib.h”
#定义M4
#定义n5
无效移位(整数arr[M][N],整数长度);
void main()
{
国际航空公司[M][N];
int i,j,长度;
printf(“输入%d行\n”,M);
对于(i=0;i我将提示您如何移动元素。逻辑是在迭代时在行中的当前元素和最后一个元素之间交换元素。我将向您展示一个1D数组的工作示例
#include <stdio.h>
#define ARRAY_SIZE 5
int main()
{
int a[ARRAY_SIZE] = {11,22,33,44,55};
int i;
for (i=0; i<ARRAY_SIZE; ++i)
{
int temp = a[i];
a[i] = a[ARRAY_SIZE-1];
a[ARRAY_SIZE-1] = temp;
}
for(i=0; i<ARRAY_SIZE; ++i)
{
printf("%d\t",a[i]);
}
return 0;
}
#包括
#定义数组大小为5
int main()
{
inta[ARRAY_SIZE]={11,22,33,44,55};
int i;
for(i=0;i将所有列向右移动。
#包括
#包括
#包括
void shift_columns_right(int M[100][100],int行,int列){
int tmp_lastcol;
int j,k;
对于(j=0;j 0;k--){
M[j][k]=M[j][k-1];
}
M[j][0]=tmp_lastcol;
}
}
内部主(空){
int B[100][100]={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16},
{17,18,19,20},
};
向右移位(B,5,4);
返回0;
}
这些图像包含太多的空白…谢谢你的提示。但我的问题是如何设置2d数组。我想读一篇文章或其他东西来了解这个主题。只需谷歌如何动态分配2d数组,你就会收到大量的结果。关于2d数组的交换,你所要做的就是再添加一个循环遍历我的逻辑中的其他行。嘿,Masesh!我遇到了一个问题,我想得到你的帮助
Shifts all columns to the right.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void shift_columns_right(int M[100][100], int rows, int cols) {
int tmp_lastcol;
int j, k;
for (j = 0; j<rows; j++){
tmp_lastcol = M[j][cols-1];
for (k = cols-1; k > 0; k-- ){
M[j][k] = M[j][k-1];
}
M[j][0] = tmp_lastcol;
}
}
int main(void){
int B[100] [100] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16},
{17,18,19,20},
};
shift_columns_right(B,5,4);
return 0;
}