C语言二维数组如何交换两行或者两列?
方法有很多:
1、可以直接找到数组对应行的元素,进行交换数据,改变原数组内容。
2、可以定义指针数组指向每行的首地址,交换指针地址,按顺序打印每个指针为首的行数据,得到数据交换效果,原数组内容不变。我这里用第2种方法给你写了一个,你参考吧。#include <stdio.h>int main (){ int nArry[4][4]={{1,2,3,4},{2,3,4,5},{3,4,5,6},{4,5,6,7}}; int *p[4],i,j,*psave,index[2];//p[]分别指向每行首地址 printf("打印原数组:"); i=16; p[0]=&nArry[0][0]; while(i-->0) { if((i+1)%4==0) printf("\n"); printf("%d ",*(p[0])); p[0]++; } while(1) { printf("\n\n输入2个你要交换的行号:"); scanf("%d%d",&index[0],&index[1]); for(i=0;i<4;i++) { p[i]=&nArry[i][0]; } psave=p[index[0]-1]; p[index[0]-1]=p[index[1]-1]; p[index[1]-1]=psave; printf("第%d行和第%d行调换后的数组为:\n",index[0],index[1]); for(i=0;i<4;i++) //按顺序打印 首地址指针开头的行数字 { for(j=0;j<4;j++) { printf("%d ",*(p[i]+j)); } printf("\n"); } } return 0;}
C语言编程:数组的逆序输出?
可以通过循环遍历数组,并将数组中的元素从后往前依次输出来实现数组的逆序输出。
首先找到数组的长度,然后设立一个循环,循环次数为数组长度的一半,通过将数组的首尾元素互换实现逆序输出。
具体实现方法是使用一个临时变量来暂存要交换的元素,然后通过数组下标的变化来交换元素的位置。最后,将逆序输出的结果打印出来即可。这样就实现了数组的逆序输出。
C语言数组倒序输出如何做?
要实现C语言数组倒序输出,可以通过循环遍历数组并将元素逆序存放到一个新数组中,然后再循环输出新数组的元素即可。
也可以使用双指针法,即将数组头尾位置的元素交换,直到指针相遇为止,达到逆序效果。
还可以使用递归函数实现数组倒序输出,每次递归都输出数组最后一个元素,然后再递归输出除了最后一个元素之外的数组部分。无论哪种方法,都需要注意数组下标的范围和遍历顺序的正确性。