Bài tập sử dụng con trỏ trong C++

Để củng cố những kiến thức đã học về lập trình C++. Đặc biệt là phần con trỏ, Mời bạn đọc cùng eLib thực hành qua một số bài tập C++ cơ bản dưới đây.

Mục lục nội dung

Bài tập sử dụng con trỏ trong C++

1. Bài tập 1

Sử dụng con trỏ trong C++, bạn hãy viết một chương trình C++ để nhận dữ liệu từ người dùng và tìm giá trị lớn nhất của một tập dữ liệu nội bộ.

Dưới đây là chương trình C++ để giải bài tập trên. Mình sử dụng một hàm mà nhận mảng các giá trị dữ liệu và kích cỡ của nó. Hàm này trả về con trỏ mà trỏ tới giá trị lớn nhất.

#include<iostream> 
#include<conio.h> 
using namespace std;
int *findMax(int arr[],int n); 
int main(){    
   int n,i,*p;     
  cout<<"Nhap so du lieu: ";     
  cin>>n;     
  int arr[n];         
  for(i=0;i<n;i++)     {       
    cout<<"Nhap gia tri thu "<<i+1<<" la :";       
   cin>>arr[i];             
}           
  p=findMax(arr,n);     
  cout<<"Gia tri lon nhat la: "<<*p;     
  getch();     
  return 0; 
}  
 
int *findMax(int data[],int n){     
  int *max=data;     
  int i;    
 for(i=1;i<n;i++){            
   if(*max<*(max+i)) *max=*(max+i);                              
  }     
  return max; 
}

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

2. Bài tập 2

Viết một chương trình C++ để nhận 5 giá trị nguyên từ bàn phím. 5 giá trị này sẽ được lưu trữ trong một mảng bởi sử dụng một con trỏ. Sau đó, in các phần tử của mảng trên màn hình.

Dưới đây là chương trình C++ để giải bài tập trên.

#include<iostream> 
#include<conio.h>
using namespace std;

   int main() 
    { 
     int arr[5],i; 
     int *p=arr; 
     cout<<"Nhap 5 so:"; 
     cin>>*p>>*(p+1)>>*(p+2)>>*(p+3)>>*(p+4); 
     cout<<"Cac so ban vua nhap la:\n"; 
     for(i=0;i<5;i++) 
        cout<<arr[i]<<endl; 
     
     
     return 0; 
  
    } 

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

Sửa đổi lời giải trên để in các phần tử của mảng theo thứ tự đảo ngược bởi sử dụng một con trỏ.

#include<iostream> 
#include<conio.h>
using namespace std;

   int main() 
    { 
     int arr[5],i; 
     int *p=arr; 
     cout<<"Nhap 5 so:"; 
     cin>>*p>>*(p+1)>>*(p+2)>>*(p+3)>>*(p+4); 
     cout<<"Cac so ban vua nhap theo thu tu dao nguoc la:\n"; 
     for(i=4;i>=0;i--) 
        cout<<*(p+i)<<endl; 
     
     
     return 0; 
  
    }

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

Trên đây là một số bài tập C++ sử dụng con trỏ mà eLib.VN tổng hợp được. Một bài có thể có nhiều hướng giải quyết. Bạn có thể chọn cách phù hợp. Chúc các bạn thành công!
Ngày:29/10/2020 Chia sẻ bởi:Tuyết

CÓ THỂ BẠN QUAN TÂM