给定一个数组p [5],编写一个函数将它左移两个位置。因此,如果p [0] = 15,P [1] = 30,P [2] = 28,P [3] = 19和P [4] = 61在此之后的移位P [0] = 28,P [ 1] = 19,p [2] = 61,p [3] = 15和p [4] = 30。为(4 x 5)矩阵调用此函数并将其行左移两位。如何移动由2个元素左移的4x5矩阵中的行
以下是我迄今为止的代码,但它不起作用。用的是问题是,由于辅助功能需要一个参数int *
,它并不需要在主函数中的数组,因此它不这样做是正确的。它虽然编译好。
#include<stdio.h>
void moveLeft2(int p[5])
{
int temp1 = p[0];
int temp2 = p[1];
for(int i = 0; i < 5 - 2; i++)
{
p[i] = p[i + 2];
}
p[3] = temp1;
p[4] = temp2;
}
int main()
{
int p[4][5] = {
{15,30,28,19,61},
{1,2,3,4,5},
{6,7,8,9,20},
{11,12,13,14,15}};
int i;
moveLeft2(p);
return 0;
}
任何人都可以帮忙吗?
它有什么问题?编译错误?阵列中有什么?定义问题。 –
你有一个功能来移动/旋转一行。循环遍历各行并自行移动。 –
问题在于,由于辅助函数接受了一个参数int *,所以它不会在主函数中使用该数组,因此它没有正确执行。它虽然编译好。 – user1850397