1. 程式人生 > 其它 >c++題目之指標初探

c++題目之指標初探

技術標籤:c++學習

1.輸入3個整數,按由小到大的順序輸出。(要求使用指標)

#include <iostream>
using namespace std;
void swap(int *p1,int *p2);
 
int main()
{ 
 	int n1,n2,n3;
	int *p1,*p2,*p3;
	cout << "輸入三個數:" ;
	cin >> n1 >> n2 >> n3; 
	p1=&n1;
	p2=&n2;
	p3=&n3;
	if(n1>n2)
swap(p1,p2); if(n1>n3) swap(p1,p3); if(n2>n3) swap(p2,p3); cout << "結果是:" << n1 << n2 << n3 << endl; return 0; } void swap(int *p1,int *p2) {int p; p=*p1; *p1=*p2; *p2=p; }

執行效果
在這裡插入圖片描述
2.輸入3個字串,按由小到大的順序輸出。(要求使用指標)

#include <iostream>
#include <stdlib.h> #include <string.h> using namespace std; /*設計思路是,用字串處理函式strcmp比較輸入的字串, 根據返回值判斷是否需要交換*/ //交換函式的設計是用二級指標,用指標指向字元陣列,再用指標的指標實現交換 void swap(char** a,char** b) { char* temp; //指標的指標 temp= *a; *a= *b; *b=temp; } int main() { char a[50],b[50],c[50]; cin >>
a >> b >> c; char *p1=a,*p2=b,*p3=c; if(strcmp(p1,p2)>0) swap(&p1,&p2); // 交換p1,取p1地址 if(strcmp(p1,p3)>0) swap(&p1,&p3); //這裡注意,字元陣列的地址就是它第一個字元的地址 if(strcmp(p2,p3)>0) swap(&p2,&p3); cout << a <<' '<< b <<' '<< c <<endl; return 0; }

執行效果
在這裡插入圖片描述
3.通過鍵盤輸入一個字元,判斷字元的種類(數字、大寫字母、小寫字母還是其他字元。(要求使用指標)

#include <iostream>
using namespace std;

int main ()
{
	char a;
	char *p = &a;
	cin >> a;	 
 	
	if(65<=*p&&*p<=89)
	{		
		cout << "是大寫字母" << endl;
	}
	else if(97<=*p&&*p<=121)
	{
		cout << "是小寫字母" << endl;
	}
	else if(48<=*p&&*p<=57)
	{
		cout << "是數字" << endl;
	}
	else 
		cout << "是其他字元" << endl;
		 
	return 0;
 }

執行效果
在這裡插入圖片描述
在這裡插入圖片描述