c++ 61,62,63

61

main()
{
	int x,y,z;	/* 定义三个int型变量 */
	int *xp = &x,	/* 定义指针变量xp,并赋值为x的地址,使xp指向x */
	    *yp = &y,	/* 定义指针变量yp,并赋值为y的地址,使yp指向y */
	    *zp = &z;	/* 定义指针变量zp,并赋值为z的地址,使zp指向z */
	int t;
	clrscr();
	printf("\nPlease input x,y,z:\n");
	scanf("%d%d%d",xp,yp,zp);	/* 通过变量的指针,为变量输入值 */
	if(*xp>*yp)	/* 通过指向变量的指针引用变量的值 */
	{
		t=*xp;	/* 通过指向变量的指针引用变量的值 */
		*xp=*yp;/* 通过指向变量x的指针xp,引用变量x的值 */
		*yp=t;	/* 通过指向变量y的指针yp,引用变量y的值 */
	}
	if(*xp>*zp)	/* 通过指向变量的指针,引用变量的值 */
	{
		t=*xp;	/* 通过指向变量x的指针xp,引用变量x的值 */
		*xp=*zp;/* 通过指向变量x的指针xp,引用变量x的值 */
		*zp=t;	/* 通过指向变量z的指针zp,引用变量z的值 */
	}
	if(*yp>*zp)	/* 通过指向变量的指针,引用变量的值 */
	{
		t=*yp;	/* 通过指向变量的指针,引用变量的值 */
		*yp=*zp;/* 通过指向变量y的指针yp,引用变量y的值 */
		*zp=t;/* 通过指向变量z的指针zp,引用变量z的值 */
	}
	printf("x = %d\ty = %d\tz = %d\n",x,y,z);
	printf("\nPress any key to quit...\n");
	getch();
}

62

int a[ ]={1,2,3,4,5};
#define N sizeof a/sizeof a[0]
main()
{
	int j,   /*游标变量*/
	      *p; /*指针变量*/
	clrscr();
	for(j=0;j<N;j++)/*数组名和下标顺序访问数组的元素*/
		printf("a[%d]\t= %d\t",j,a[j]);
	printf("\n");
	for(p=a;p<a+N;p++)/*让指针顺序指向数组的各元素,遍历数组*/
	printf("*p\t= %d\t",*p);
	printf("\n");/*指针与游标变量结合,改变游标变量遍历数组*/
	for(p=a,j=0;p+j<a+N;j++)
		printf("*(p+%d)\t= %d\t",j,*(p+j));
	printf("\n");/*指针与游标变量结合,用指针和下标遍历数组*/
	for(p=a+N-1,j=N-1;j>=0;j--)
		printf("p[-%d]\t= %d\t",j,p[-j]);
	printf("\nPress any key to quit...\n");
	getch();
}

63

#include <stdio.h>
#define MAX 20
int search(int *apt,/*已知数表的首元指针*/
	int n,/*数表中元素个数*/
	int key)/*要寻找的值*/
{
	int *p;
	for(p=apt;p<apt+n;p++)
		if(*p==key)
			return p-apt;/*返回找到元素的下标*/
	return -1;
}
int *find(int *apt,/*已知数表的首元指针*/
		int n,/*数表中元素个数*/
		int key)/*要寻找的值*/
{
	int *p;
	for(p=apt;p<apt+n;p++)
		if(*p==key)
		return p;/*返回找到元素的指针*/
	return NULL;
}

int a[]={90,80,70,60,50,40,30,20,10,9,8,7,6,5,42,40,50,1,2,3};
main()
{
	int i,key;
	clrscr();
	printf("The elements of array a is:\n");
	for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
		printf(" %d",a[i]);
	printf("\nThe address of a[0] is: %d.\n",&a[0]);
	puts("\nPlease input the key number you want to search:");
	scanf("%d",&key);
	i=search(a,sizeof(a)/sizeof(a[0]),key);
	printf("\nThe label number of the key number %d in the array is: %d.",key,i);
	printf("\nThe point value of the key number %d in the array is: %d.",key,find(a, sizeof(a)/sizeof(a[0]),key));

	puts("\n\n Press any key to quit...");
	getch();
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值