① c语言一道题目分析程序运行过程,将数组a中的n个整数按相反顺序存放 ,求解释!
这是因为前面已经赋值:
i=x; j=x+n-1;p=x+m;
所以,for(;i<=p;i++,j--)
就相当于:
for(i=x,j=x+n-1;i<=x+(n-1)/2;i++,j--)
总的循环次数为1+(n-1)/2次,每次交换首尾一对数后,i,j相向各自移动一位。所以,这循环就使得x[0]~x[n-1]的元素全部逆置了。
② 将数组a中n个数按反序存放 用c语言解答
将数组中的数倒排序,无非是把数组的索引从到小排列。
#include <stdio.h>
int main(void)
{
int arry[]={12,4,6,45,3,5,18,79,1};
int i,*new;
for(i=sizeof(arry)-1;i>=0;i--)
{
new[sizeof(arry)-1-i]=arry[i]);
}
return 0;
简单吗?这样数组mew的元素排列就和数组初始化的顺序正好相反了。
③ 程序填空题求C语言大神看一看 🙏️(图里有整个题目) 将数组a中的n个整数按相反顺序存放
1、j=x+n-1
2、i<=p && j>p
3、t=*i;*i=*j;*j=t;
4、p=a
5、inv(p, 10)
④ 将数组a中n个整数按相反顺序存放,并输出对换后的结果。利用指针完成。
//reverse(x,y)反转[x,y)的数据#includeusingnamespacestd;voidmain(){inta[10]={3,7,9,11,0,6,7,5,4,2};reverse(a,&a[10]);}
⑤ C++ 下面给出用数组的方法将数组a中的n个整数按相反顺序存放,请用指针的方法重写^_^
void inv(int *x,int n)
{
int t,mid = n/2;
for(int i = 0;i<mid;++i)
{
t = *(x + n - 1 - i);
*(x + n - 1 - i) = *(x + i);
x(x + i) = t;
}
}
写完后发现与 梦想窗外 的算法雷同,不是抄袭,也还是写上吧~