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
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:
Tham khảo thêm
- doc Bài tập C++ kinh điển
- doc Bài tập C++ cơ bản
- doc Bài tập vòng lặp trong C++
- doc Bài tập mảng trong C++
- doc Bài tập chuỗi trong C++
- doc Bài tập Struct trong C++
- zip Bài tập quản lý sinh viên trong C/C++
- docx Ngân hàng câu hỏi trắc nghiệm C++ có đáp án