lap trinh c++ có lời giải 3
DESCRIPTION
TRANSCRIPT
1.2) Kiểu dữ liệu mảng 1.2.1) Nhập – xuất mảng 62. Viết chương trình nhập xuất mảng một chiều các số thực.
#include <iostream.h>void nhapso(int M[100], int &n );int main(int argc, char *argv[]){int M[100],n;nhapso(M,n);return 0;
}void nhapso(int M[100], int &n){cout<<"nhap so"<<endl;cin>>n;for(int i=0; i<=n; i++) { cout<<"mang so la: ["<<i+1<<"]= ";
cin>>M[i]; }
}
63. Viết chương trình khởi tạo giá trị các phần tử là 0 cho mảng một chiều các số nguyên gồm n phần tử.
#include <iostream.h>void nhapso(int M[5], int &n);void xuatso(int M[5], int n);int main(int argc, char *argv[]){int M[5],n;nhapso(M,n);
xuatso(M,n);return 0;
}void nhapso(int M[5], int &n){
cout<<"nhap so "<<endl;cin>>n;for(int i=0; i<=n; i++){
cout<<"phan tu mang ["<<i+1<<"] = ";cin>>M[i];
}}Void xuatso(int M[5], int n){ for(int i=0; i<=n; i++) Cout<<”a[”<<i+1<<”]= ”<<0<<endl;}
64. Viết chương trình phát sinh ngẫu nhiên mảng một chiều các số nguyên âm.
#include <iostream.h>
#include <stdlib.h>#include <conio.h>#include <time.h>void nhapso(int M[5], int &n);void xuatso(int M[5], int n);int main(int argc, char *argv[]){
int M[5],n;nhapso(M,n);xuatso(M,n);return 0;
}void nhapso(int M[5], int &n){
int kt,so;cout<<"nhap gia tri phan tu mang "<<endl;cin>>n;srand(time(NULL));for(int i=0; i<n; i++){
do{
kt=1;so=(rand()%50)-100;for(int j= i-1; j>=0; j--) { if(so==M[j]) kt=0; }
}while(kt==0);M[i]=so;
}}void xuatso(int M[5], int n){
for(int i=0; i<n; i++) { cout<<"a["<<i+1<<"]= "<<M[i]<<endl; }
}
65. Viết chương trình phát sinh ngẫu nhiên mảng một chiều các số nguyên sao cho mảng có thứ tự tăng dần (Không sắp xếp).
#include <iostream.h>#include <stdio.h>#include <conio.h>#include <time.h>void nhapso(int M[100], int &n);void xuatso(int M[100], int n);
int main(int argc, char *argv[]){int M[100],n;nhapso(M,n);xuatso(M,n);return 0;
}void nhapso(int M[100], int n){cout<<"nhap mang "<<endl;cin>>n;srand(time(NULL));for(int i=0; i<n; i++) { if(i==0) do { so=(rand()%1000)-499; if(so<100-n) mang[0]=so;
} while(so>=100-n); else do { so=(rand()%1000)-499; if(so>=mang[i-1]) mang[i]=so;
}
while(so<mang[i-1]); }
}void xuatso(int M[100], int n){cout<<"gia tri phan tu mang"<<endl;for(int i=0; i<n; i++) { cout<<"a["<<i+1<<"]= "<<M[i]<<endl; }
}
66. Viết chương trình nhập mảng các số thực và xuất các phần tử âm trong mảng.
#include <iostream.h>#include <stdlib.h>#include <conio.h>#include <time.h>void nhapso(int M[100], int &n);void xuatso(int M[100], int n);
int main(int argc, char *argv[]){
int M[100],n;nhapso(M,n);xuatso(M,n);return 0;
}void nhapso(int M[100], int &n){
int so;cout<<"nhap mang "<<endl;cin>>n;srand(time(NULL));for(int i=0; i<n; i++) { if(i==0) do { so=((rand()%1000)-499); if(so<100-n) M[0]=so;
} while(so>=100-n); else do {
so=(rand()%1000)-499; if(so>=M[i-1]) M[i]=so;
} while(so<M[i-1]); }
}void xuatso(int M[100], int n){
cout<<"gia tri phan tu mang"<<endl;for(int i=0; i<n; i++) { cout<<"a["<<i+1<<"]= "<<M[i]<<endl; }
}
67.Viết chương trình nhập mảng các số nguyên và xuất các phần tử lẻ có trong mảng.
#include <iostream.h> void nhapmang(int mang[],int &n); void ptL(int mang[],int n); int main(int argc, char *argv[]) {
int mang[100]; int n; nhapmang(mang,n); ptL(mang,n); return 0;
} void nhapmang(int mang[],int &n) {
cout<<"nhap so phan tu: "; cin>>n; int i; for( i=0;i<n;i++) { cout<<"nhap gia tri phan tu ["<<i+1<<"]:"; cin>>mang[i]; }
} void ptL(int mang[],int n) { int i;
cout<<"phan tu le co trong mang la"<<endl; for( i=0;i<n;i++) {
if(i%2==0) cout<<"a["<<i+1<<"]="<<mang[i]<<", ";
} cout<<endl;
}
68. Viết chương trình nhập vào mảng một chiều các số nguyên và xuất ra phần tử chẵn nhỏ hơn 20.
#include <iostream.h>void nhapmang(int mang[],int &n);
int phantuchan(int mang[],int n);int main(int argc, char *argv[]){
int mang[100];int n;nhapmang(mang,n);phantuchan(mang,n);return 0;
}void nhapmang(int mang[],int &n){
cout<<"nhap so phan tu: ";cin>>n;int i;for( i=0;i<n;i++) { cout<<"nhap gia tri phan tu ["<<i+1<<"]:"; cin>>mang[i]; }
}int phantuchan(int mang[],int n){
int i;cout<<"phan tu chan co trong mang be hon 20 la";for( i=0;i<n;i++){
if(mang[i]%2==0 && mang[i]<20)cout<<"a["<<i+1<<"]="<<mang[i]<<" ";
}cout<<endl; }
69. Vi t ch ng trình nh p vào m ng m t chi u các s nguyên và ế ươ ậ ả ộ ề ốxu t ra màn hình các ph n t là s nguyên t .ấ ầ ử ố ố#include <iostream.h>void nhapmang(int mang[],int &n);void SNT(int mang[],int &n);int main(int argc, char *argv[]){
int mang[100];
int n;nhapmang(mang,n);SNT(mang,n);return 0;
}void nhapmang(int mang[],int &n){
cout<<"nhap so phan tu: ";cin>>n;int i;for( i=0;i<n;i++) { cout<<"nhap gia tri phan tu ["<<i+1<<"]:"; cin>>mang[i]; }
}void SNT(int mang[],int &n){
int i,dem;for( i=0;i<n;i++){
dem=0; for(int t=1;t<=mang[i];t++)
if(mang[i]%t==0)dem++;if(dem==2)
cout<<"a["<<i+1<<"]="<<mang[i]<<", ";}cout<<endl;
}
70. Viết chương trình nhập vào mảng một chiều các sốnguyên và xuất ra màn hình các phần tử là số chính phương nằm tại những vị trí lẻ trong mảng.
#include <iostream.h>
void nhapmang(int mang[],int &n);void SCP(int mang[],int &n);int main(int argc, char *argv[]){
int mang[100];int n;nhapmang(mang,n);SCP(mang,n);return 0;
}void nhapmang(int mang[],int &n){
cout<<"nhap so phan tu: ";cin>>n;int i;for( i=0;i<n;i++) { cout<<"nhap gia tri phan tu a["<<i<<"]="; cin>>mang[i]; }
}void SCP(int mang[],int &n)
{int i,j;for( i=0;i<n;i++){
if(i%2==1){
j=1;while (j*j<mang[i])j++;if(j*j==mang[i]) cout<<"a["<<i<<"]="<<mang[i]<<", ";
}}cout<<endl;
}
1.2.2) Tìm kiếm 71. Viết phương thức tìm vịtrí phần tửcó giá trịx xuất hiện cuối cùng trong mảng.
#include <iostream.h>void nhapmang(int mang[],int &n);int tim(int mang[],int n,int x);int main(int argc, char *argv[]){
int mang[100];int n,x,i;nhapmang(mang,n);cout<<"nhap x=";cin>>x;i=tim(mang,n,x);if (i>0)
cout<<"vi tri xuat hien cua so "<<x <<" sau cung la vi tri: "<<i;
elsecout<<"Khong tim thay "<<x<<" trong mang:";
cout<<endl;return 0;
}void nhapmang(int mang[],int &n){
cout<<"nhap so phan tu: ";cin>>n;int i;for( i=0;i<n;i++) { cout<<"nhap gia tri phan tu ["<<i+1<<"]:"; cin>>mang[i]; }
}int tim(int mang[],int n,int x){
int i;for( i=n-1;i>=0;i--){
if(mang[i]==x) return i;}return 0;cout<<endl;
}
72. Viết phương thức tìm vịtrí của phần tửnhỏnhất trong mảng các số nguyên.
#include <iostream.h>void nhapmang(int mang[],int &n);void timM(int mang[],int &n);int main(int argc, char *argv[]){
int mang[100];int n;nhapmang(mang,n);timM(mang,n);return 0;
}void nhapmang(int mang[],int &n){
cout<<"nhap so phan tu: ";cin>>n;int i;for( i=0;i<n;i++) { cout<<"nhap gia tri phan tu ["<<i+1<<"]:"; cin>>mang[i]; }
}void timM(int mang[],int &n){
int i,min=mang[0];for(i=0;i<n;i++)
if(min>mang[i])min=mang[i];
cout<<"gia tri nho nhat trong mang la:"<<min<<"\n";
}
73. Viết phương thức tìm vị trí của phần tử lớn nhất trong mảng các số nguyên.
#include <iostream.h>void nhapmang(int mang[],int &n);void timkiem(int mang[],int n);int main(int argc, char *argv[]){
int mang[100];int n;nhapmang(mang,n);timkiem(mang,n);return 0;
}void nhapmang(int mang[],int &n){
cout<<"nhap so phan tu: ";cin>>n;int i;for( i=0;i<n;i++) { cout<<"nhap gia tri phan tu ["<<i+1<<"]:"; cin>>mang[i]; }
}void timkiem(int mang[],int n){
int i,max=mang[0];for( i=1;i<n;i++)
if(max<mang[i]) max=mang[i]; cout<<"gia tri lon nhat trong mang la "<<max<<" ";}