11.23~11.29作业(1)

1.指针变量的处理方法编写一个程序,功能为将数组s(共10个元素,由随机数生成)中的数据位置两两对倒,并输出结果。

程序要求:程序中对数组的处理全部使用指针方式。

运行结果示例:

1.#include "iostream.h"
#include "time.h"
#include "stdlib.h"
void main()
{
 int s[10],*p,b;
 srand ((unsigned)time(NULL));//用这种方式使得每次执行程序时生成的一组随机数是不一致的
 cout<<"原数组:";
 for(p=s;p<s+10;p++)
 {
  *p=rand()%100;//生成100以内的随机数
  cout<<*p<<" ";
 }
 cout<<endl;
 cout<<"调整后:";
 for(p=s;p<s+10;p+=2)//步长是2
 {
  b=*p;
  *p=*(p+1);
  *(p+1)=b;//一瓶酱油一瓶醋的问题,需要关注的点是交换值得时候应该类型一致,所以中间类型b也是指针类型
  cout<<*p<<" "<<*(p+1)<<" ";//输出这两个相邻的值
 }
 cout<<endl;
}

2.用指针变量的处理方法编写一个程序,功能为将一维数组s(数组元素的个数和数值均由用户即时输入的值决定)中的数据进行逆置,并输出结果。

程序要求:使用两个指针,指针p从数组首部向后移动,指针q从数组尾部与之同步向前移动。

运行结果示例:

#include "iostream.h"
void main()
{
	int *p,*q,c[100],n,i,t;
	cout<<"输入数组元素的个数:";
	cin>>n;
	cout<<endl;
	cout<<"输入数组的"<<n<<"个元素值:";
	for(i=0;i<n;i++)
		cin>>c[i];//向数组中读入元素
	cout<<endl;
	cout<<"数组逆置后的结果:";
	p=c;//第一个指针指向第一个元素
	q=c+n;//第二个指针指向最后一个元素
	for(i=0;i<n/2.0;i++)//中间对称分割,终值为n/2.0,用2.0的原因是考虑n的奇偶性的影响
	{
		t=*p;
		*p=*q;
		*q=t;//一瓶酱油一瓶醋的问题
		p++;//两个指针都向中间靠拢
		q--;
	}
	for(i=0;i<n;i++)
		cout<<c[i+1]<<" ";//依次输出修改后的数组中的元素
	cout<<endl;
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值