设计一个函数,要用到void reverse(int a[ ],int n) 颠倒数组a的前n个元素的顺序

麻烦用VC++的,VC的就不要再粘贴过来了

第1个回答  推荐于2017-09-10
#include<iostream>
using namespace std;
void reverse(int *a,int n)
{
int i,t;
for(i=0;i<n/2;i++)
{
t=*(a+i);
*(a+i)=*(a+n-i-1);
*(a+n-i-1)=t;
}
}
int main()
{
int i,a[]={0,1,2,3,4,5,6,7,8,9};
reverse(a,10);
for(i=0;i<10;i++)
cout<<a[i]<<' ';
cout<<endl;
return 0;
}本回答被提问者采纳
第2个回答  2011-06-02
#include <iostream>
using namespace std;
void reverse(int a[ ], int n)
{
unsigned int i = 0;
unsigned int mid = 0;
unsigned int endvalue = n;
if (n & 0x1 == 0)
{
mid = n >> 1;
}
else
mid =(n >> 1) + 1;;
for (i=0; i<mid && i < endvalue; ++i)
{
a[i] = a[i] ^ a[endvalue];
a[endvalue] = a[endvalue] ^ a[i];
a[i] = a[i] ^ a[endvalue];
--endvalue;
}
}

int main()
{
int arr[] = {0,1,2,3,4,5,6,7,8,9};
reverse(arr,5);
for (unsigned int i=0; i<sizeof(arr) / sizeof(int); ++i)
{
cout << arr[i] << '\n';
}
system("pause");
return 0;
}
第3个回答  2011-06-02
int i,x;
for(i=0;i<n/2;i++) {x=a[i];a[i]=a[n-i];a[n-i]=x;}

话说,VC++和VC在这里有区别么。。

编写一个函数:void reverse( int a[], int n),将数组a中n个元素反序排...
a[i]=a[n-1-i];a[n-1-i]=temp;} } void main(){ int i,n,a[100]={1,2,3,4,5};printf("please input the number:");scanf("%d",&n);\/\/输入数组的长度 printf("\\ninput date:\\n");for(i=0;i<n;i++)\/\/给该数组输入数值 scanf("%d",&a[i]);reverse(a,5);\/\/...

c语言:void reverse(int a[], int n)是什么意思
void reverse(int a[],int n)意思是把数组a 中的前n个数逆置过来。b[10]={1,2,……10}给数组b赋初值。s+=b[i]相当于s=b[0]+b[1]……+b[i].reverse(b,8)就是把数组b中的前8个数逆置过来 35:s+=aa[i][1] 相当于第二列相加 即:2+6+9+2=19 aa[4][4]是一个二维数...

void reverse(int a[],int n) {int i,t; for(i=0;i<n\/2;i++) {t=a...
reverse函数的作用是:把数组a[ ] 里面的数值倒序。假如原来 a[ ]={1,2,3,4,5,6} ,n=6 (n表示数组里面的数值个数)。那么调用reverse函数后,a[ ]={6,5,4,3,2,1} 。

编写一个C++算法使元素倒置
n个元素,1和n互换,2和n-1互换,3和n-2互换,以此类推即可完成,时间复杂度优于上面提出的方案。不过不利用你给的条件。void reverse(int a[], int n){ int i,j,tmp;for(i=0, j=n-1; i<j; i++,j--){ tmp=a[i];a[i]=a[j];a[j]=tmp;} } ...

用递归的方法把数组中的N个数按倒的次序重新排列
void reverse(int a[],int n){ int t;if (n==1)return;t=a[0];for (int i=0;i<n-1;i++){ a[i]=a[i+1];} a[n-1]=t;reverse(a,n-1);return;} void main(){ int a[10];int i;a[0]=1;for (i=0;i<10;i++){ a[i]=a[i-1]+i;} printf("数组倒序排列...

14、 编写一个函数reverse(s)将字符串s中的字符位置颠倒过来。例如,字 ...
1、首先将字符串转换成列表,之后再修改列表中的元素来完成, 如下图,通过list(r)来将r字符串转化成了一个列表。2、然后修改单个列表的元素,如下图所示将第二个元素d替换成了m。3、最后通过join的方法把列表中的元素合成一个字符串。4、还可以通过python自带的replace方法直接完成替换,如下图,将...

...调用reverse()函数将这n个数按输入时顺序的逆序输出。 输入格式:n...
<stdlib.h>void reverse(int *a, int n){ int *p=a+n-1,t; while(a<p) { t=*a; *a++=*p; *p--=t; }}int main(){ int *a; int n,i; scanf("%d",&n); a=(int *)malloc(sizeof(int)*n); for(i = 0; i < n; i ++...

全国计算机等级考试三级笔试试题及答案?
void reverse(int a[ ],int n){ int i,t;for(i=0;i{ t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;}}main(){ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse(b,8); for(i=6;i<10;i++) s+=b[i]; printf(“%d\\n”,s);}程序运行后的输出结果是( )。A)...

数据结构作业
★2.4 用向量作存储结构,试设计一个算法,仅用一个辅助结点,实现将线性表中的结点循环右移k位的运算,并且分析算法的时间复杂度。 void MoveKList(int a[],int n,int k) { int i, j, temp; for (i=1; i<=k; i++) \/\/外层for循环控制循环右移的次数i { temp=a[n-1]; \/\/把表尾元素保存到...

...void reverse(int a[],int n) { int i,t; for(i=0;i<n\/2;i++...
没把代码完全贴完 所以不知道你的程序是怎么写的~~还有VOID是指函数无返回值,但并不代表程序把这个函数运行完了之后,不会改变传进来的实参~

相似回答
大家正在搜