#include "stdio.h"
void abc(int a[],int n)
{
int i,t;
for(i=0;i<n;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;
abc(b,8);
// for(i=0;i<10;i++)
// printf("%d",b[i]);
for(i=6;i<10;i++)
_ s+=b[i];
printf("%d\n",s);_
}
/*
1.程序运行结果:
32
*/==提问:调用abc(b,8);后数组元素为何没有改变成b[10]={8,7,6,5,4,3,2,1,9,10};呢?结果应该为22吧?
你上面两个数调换位置后又调换回来了多循环了
for(i=0;i<=n/2;i++)
循环次数多了。void abc函数中for(i=0;i<n;i++)循环:i=1~n/2是交换数组数据,但n/2~n又将数据交换回来了;改成for(i=0;i<n/2;i++)就好了。
for(i=0;i<=n/2;i++) 你写的方法只需循环n/2,你多循环了