《算法笔记》2.7小节——C/C++快速入门->指针

问题 A: C语言10.1 利用指针变量比较两个数的大小

题目描述

输入a和b两个整数,按先大后小的顺序输出a和b。注意请使用指针变量的方式进行比较和输出。

输入

两个用空格隔开的整数a和b。 

输出

按先大后小的顺序输出a和b,用空格隔开。
请注意行尾输出换行。

样例输入 

   5 9

样例输出  

   9 5

代码实现

#include 
int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	int *p1, *p2;
	p1 = &a;
	p2 = &b;
	if(*p1 < *p2)
	{
		int temp = *p1;
		*p1 = *p2;
		*p2 = temp;
	}
	printf("%d %d\n",*p1, *p2);
	return 0;
}

问题 B: C语言10.2 按先大后小的顺序输出a、b和c

题目描述

输入a、b、c三个整数,按先大后小的顺序输出a、b和c。注意请使用指针变量的方式进行比较和输出。

输入

三个用空格隔开的整数a、b和c。

输出

按先大后小的顺序输出a、b和c,用空格隔开。
请注意行尾输出换行。

样例输入 

   9 0 10

样例输出  

   10 9 0

解题思路 

通过定义两个数组,一个int数组,一个指针变量数组,然后冒泡排序,比较三个数的大小 

代码实现

#include 
int main()
{
	int a[3];
	int *p[3];
	for (int i = 0; i < 3; i++)
	{
		scanf("%d",&a[i]);
		p[i] = &a[i];
    }
		for (int i = 0; i < 2; i++)
			{
				for (int j = 0; j < 2-i; j++)
				{
					if (*p[j] < *p[j+1])
				    {
				    	int temp = *p[j];
					    *p[j] = *p[j+1];
					    *p[j+1] = temp;
				    }
				}
			}
	    for (int i = 0; i < 3; i++)
	    	{
	    		printf("%d ", *p[i]);
	    	}
	printf("\n");	
	return 0;
}

问题 C: C语言10.10

题目描述

给定字符串定义char *a = “I love China!”,读入整数n,输出在进行了a = a + n这个赋值操作以后字符指针a对应的字符串。

输入

一个整数n,保证0<=n<13。

输出

输出进行了题目描述中赋值操作之后a对应的字符串。
请注意行尾输出换行。

样例输入 

   7

样例输出  

   China!

代码实现

#include
#include
 
int main()
{
	const char *a="I love China!";//常量指针
	int n;
	
	scanf("%d",&n);
	printf("%s\n",a+n);
	return 0;
	
}

问题 C: C语言10.15

题目描述

输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理

输入

3行,每行一个用字符串。保证每个字符串的长度不超过20。

输出

按从小到大的顺序输出这3个字符串,每个字符串一行。
请注意行尾输出换行。

样例输入 

   China
   CLOCK
   deal

样例输出  

  CLOCK
  China
  deal

代码实现

#include 
#include 
#include 
void swap(char **p1, char **p2){ 
//表示p1里面存一个char *型变量的地址 p1 = &p1, p2 = &p2;
	char *temp = *p1;
	*p1 = *p2;
	*p2 = temp;
}
int main()
{
	char str[3][20];
	char *p[3];
	for (int i = 0; i < 3; i++)
	{
		gets(str[i]);
		p[i] = str[i];
	}
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 2-i; j++)
		{
			if(strcmp(p[j],p[j+1])>0)
			{
				swap(&p[j], &p[j+1]);
			}
		}
	}
	for (int i = 0; i < 3; i++)
	{
		puts(p[i]);
	}
	return 0;
}

你可能感兴趣的:(算法笔记,c++,c语言,开发语言,算法)