本文目录一览:
- 1、c语言如何将二维数组行列循环移位
- 2、C语言二维数组移动,效果如下 {1 2 3 4 5}{6 7 8 9 10} 移动后是这样的:{0 1 2 3 4}{ 5 6 7 8 9}{10}
- 3、C语言二维数组移位问题解析?
- 4、c语言用函数将二维数组往前移一个元素。注意,不要用指针
- 5、c语言对于二维数组,所有行向右移动一位,最右一行移到第一
- 6、C语言如何将二维数组中两个元素交换位置
c语言如何将二维数组行列循环移位
#includestdio.h
#define N 5
int main(){
int i,j,m,n,a[N][N];
printf("input m n:");
scanf("%d%d",m,n);
while(m0)m-=N;
while(n0)n-=N;
for(i=0;iN;i++)
for(j=0;jN;j++)
a[i][j]=i*N+j+1;
for(i=0;iN;i++){
for(j=0;jN;j++)
printf("%-3d",a[(N-m+i)%N][(N-n+j)%N]);
printf("\n");
}
return 0;
}
input m n:1 1
25 21 22 23 24
5 1 2 3 4
10 6 7 8 9
15 11 12 13 14
20 16 17 18 19
C语言二维数组移动,效果如下 {1 2 3 4 5}{6 7 8 9 10} 移动后是这样的:{0 1 2 3 4}{ 5 6 7 8 9}{10}
#includestdio.h
int main()
{int i,j,t,a[3][5]={1,2,3,4,5,6,7,8,9,10},*p;
printf("原数组:\n");
for(i=0;i2;i++)
{for(j=0;j5;j++)
printf("%4d",a[i][j]);
printf("\n");
}
p=a[0][0]+10;
for(;pa[0][0];p--)
*p=*(p-1);
*p=0;
printf("移动后的数组:\n");
for(i=0;i3;i++)
{for(j=0;j5;j++)
{printf("%4d",a[i][j]);
if(i==2)break;
}
printf("\n");
}
return 0;
}
C语言二维数组移位问题解析?
(n+x)%lie是每4个一个循环,是为了支持输入的移位大于4的情况,因为等于4的时候相当于不用移,等于5的时候和等于1的时候是一样的。也就是说周期是lie,4
c语言用函数将二维数组往前移一个元素。注意,不要用指针
你确定题目是"采用指针数组去访问数组元素",而不是"采用数组指针去访问数组元素"
c语言对于二维数组,所有行向右移动一位,最右一行移到第一
int arr[4][4];
for (int iCol = 0; iCol 4; iCol++)
{
int iRowFirst = 0;
//记录每行第一个数
iRowFirst = arr[iCol][0];
for(int iRow = 0; iRow 3; iRow++)
{
arr[iCol][iRow] = arr[iCol][iRow+1]
}
arr[iCol][iRow] = iRowFirst;
}
C语言如何将二维数组中两个元素交换位置
可以让数组进行转置来实现,参考如下:
public class TestTransposition {
int col;
int row;
/**转换方法 将一个数组进行转置
* 原理很简单
*
* @param input
* @return
*/
public int[][] trans(int[][] input) {
int[][] output = null;
row = input.length;
if (row $amp;amp;$nbsp;0) {
col = input[0].length;
}
output = new int[col][row];
for (int i = 0; i $amp; for (int j = 0; j $amp; output[j][i] = input[i][j];
}
}
return output;
}
public static void main(String[] args){
//若是需要得到转置数组,应该调用上面的转置方法
// int[][] in={{1,2,3},{3,4,5}};
// int[][] out=new TestTransposition().trans(in);
// for (int i = 0; i $amp; // for (int j = 0; j $amp; // System.out.print(out[i][j]);
// }
// System.out.println("");
// }
//若只是想输出得到效果 这应该是可以的
int[][] in={{1,2,3},{3,4,5}};
for(int i=0;iin[0].length;i++){
for(int j=0;jin.length;j++){
System.out.print(in[j][i]);
}
System.out.println("");
}
}
/*a[2][3]----a[3][2]
* a[0][0]----a[0][0]
* a[0][1]----a[1][0]
* a[0][2]-----a[2][0]
* a[1][0]----a[0][1]
* a[1][1]----a[1][1]
* a[1][2]-----a[2][1]
*/
//故此 初步想法应是通过反向循环,即先循环列,在循环行来实现。
}