c语言 编写函数实现反转数组里的元素

菲安妮2023-04-25  17

#include <stdioh>

int hanshu(int i,int a[])

{

    int temp,counter=i;

    for(i=0;i<counter/2;i++)

    {

            temp=a[i];

            a[i]=a[counter-i];

            a[counter-i]=temp;

    }

}

int main()

{

    int a[10],i=10;

    for(i=0;i<10;i++)//<=============

        scanf("%d",&a[i]);

    hanshu(i,a);

    for(i=0;i<10;i++)//<=============

        printf("\t%d",a[i]);

    return 0;

}

如果只是翻转显示代码如下:

#include <stdioh>

#include <stdlibh>

void changedisp (int p ,int n);

int main( )

{   int i;

 int a[10];

 for (i=0;i<10;i++)

  scanf("%d",&a[i]);

 for (i=0;i<10;i++)

  printf("%d",a[i]);

 printf("\n");

 changedisp(a,10);

 printf("\n"); 

 return 0;

}

void changedisp (int p ,int n)

{

 int j;

 for(j=0;j<=n-1;j++)

 {

  printf("%d",p[n-1-j]);

     

 }

}

如果要求调换数据代码如下:

#include <stdioh>

#include <stdlibh>

void change (int p ,int n);

int main( )

{   int i;

int a[10];

for (i=0;i<10;i++)

scanf("%d",&a[i]);

for (i=0;i<10;i++)

printf("%d",a[i]);

printf("\n");

change(a,10);

for (i=0;i<10;i++)

printf("%d",a[i]);

printf("\n");

return 0;

}

void change (int p ,int n)

{

int temp,j;

for(j=0;j<=(n-j-1);j++)

{

temp=p[j];

p[j]=p[n-1-j];

p[n-1-j]=temp;

}

}

Dim a(10) As Integer, b(10) As Integer

Private Sub Command1_Click()

Dim i As Integer

For i = 1 To 10

    a(i) = Int(Rnd  90 + 10)

Next i

For i = 1 To 10

Print a(i);

Next i

End Sub

 

Private Sub Command2_Click()

Dim i As Integer, t As Integer

For i = 1 To 5

   b(i) = a(11 - i)

   b(11 - i) = a(i)

Next i

Print

For i = 1 To 10

    Print b(i);

Next i

End Sub

 

Private Sub Command3_Click()

End

End Sub

你可以使用Arraylist数组类,这个数组类存放元素可以动态添加和删除.而且可以存放任何类型的数据!

dim arr as New ArrayList() ’将变量arr定义为Arraylist类

以下是该类的常用方法:

arradd() ’将括号内的数据添加到数组的末尾

arrcount '返回数组元素的总数目

arritem() ’设定或取得由索引所指的数组元素内容

arrsort() ’将数组内所有元素以递增方式排序

arrReverse() ’将数组类中的所有元素反转(颠倒顺序),配合sort方法可以实现降序排列

arrinsert(索引值,数据) ’在数组指定索引值的位置插入数据

arrclear() '清除所有数组元素

arrindexof() ’返回数组中第一个符合指定对象的索引值,未找到返回负值

arrbinaryserach() ’在数组中寻找指定对象,找到返回该对象的索引,否则返回负值;此方法使用前,必须先将数组作升序排列.

以上VB2005版本适用

import javautilArrays;

public class TurnArray {

public static void main(String[] args) {

int[] a = {1,2,3,4,5};

int[] b = new int[alength];

for(int i = 0;i<alength;i++){

b[blength-1-i] = ArrayscopyOfRange(a, i, i+1)[0];

}

for(int i:b){

Systemoutprintln(i);

}

}

}

这个问题,简单,首先问楼主一个问题,如果说其中没有一个数组的话反转你应该会写对吧,其实这个里面有个数组就是再次调用一次本身函数就好,这就是所谓的递归,代码如下:

 $arr=array("1","2","3","php",array("4","5","6"));

  function array_rev($arr){

      for($i=count($arr)-1;$i>=0;$i--){

          if(is_array($arr[$i])){   //这里判断是否为数组

              $temp1 = array_rev($arr[$i]);  //若为数组则开始调用自身

              $temp[] = $temp1;

              continue;

          }

          $temp[] = $arr[$i];

      }

      return $temp;

  }

  var_dump(array_rev($arr));

reverse();

程序如下:主要需要用数组的迭代器,如果对迭代器不了解,就会理解有点困难,因为,reverse()接受的参数就是一组迭代器。

#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

int main()

{

vector<int> vi;

int i,j;

for(i=1;i<5;i++)

vipush_back(i);

for(j=0;j<visize();j++)

cout<<vi[j]<<' ';

cout<<endl;

reverse(vibegin(),viend());

for(j=0;j<visize();j++)

cout<<vi[j]<<' ';

cout<<endl;

}

直接循环一下不就好了。

int rt[]={1,2,3}; //定义数组

int r[]=new int[rtlength]; //定义一个和要转换数组同长度的数组

for(int i=0;i<rtlength;i++){

r[rtlength-1-i]=rt[i]; //从最后向前填充r数组

}

r就是你要的反转数组了。

以上就是关于c语言 编写函数实现反转数组里的元素全部的内容,包括:c语言 编写函数实现反转数组里的元素、写一函数来实现数组的反转输出(用指针)求大神赐教,谢谢、vb怎么反转一个一维数组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

转载请注明原文地址:https://juke.outofmemory.cn/read/3675331.html

最新回复(0)