本题要求实现一个简单函数,找出两个数中的最大值。

函数接口定义:

void findmax( int *px, int *py, int *pmax );

其中px和py是用户传入的两个整数的指针。函数findmax应找出两个指针所指向的整数中的最大值,存放在pmax指向的位置。

裁判测试程序样例:

#include <stdio.h>

void findmax( int *px, int *py, int *pmax );

int main()
{	
    int max, x, y; 

    scanf("%d %d", &x, &y);
    findmax( &x, &y, &max );
    printf("%d\n", max);

    return 0;
} 

/* 你的代码将被嵌在这里 */

我的答案

void findmax(int* px, int* py, int* pmax)
{
	if (*px > * py)
	{
		*pmax = *px;
	}
	if (*px < * py)
	{
		*pmax = *py;
	}
}

注意理解好指针就行,这题十分简单

#include <stdio.h>

void main()
{
   int x = 10;
   int *p = &x;   /* p 保存的是x的地址,类型是“整型指针类型”*/
   int ** q = &p;  /* q 保存的是p的地址,类型是“整型指针的指针类型”*/
   int y = *p; 
   int z = *(*q);
   printf("%d\t%d\t%d\t%d\t%d\n",x,&x,p,&p,q);
   printf("%d\t%d\t%d\t%d\t%d\t%d\n",q,*q,**q,*p,y,z);
}

这个代码有助于理解,可以去运行一下试试

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐