lap trinh c++ có lời giải 3

28
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]; }

Upload: minh-ngoc-tran

Post on 28-Nov-2014

863 views

Category:

Internet


9 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Lap trinh c++ có lời giải 3

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]; }

}

Page 2: Lap trinh c++ có lời giải 3

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){

Page 3: Lap trinh c++ có lời giải 3

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>

Page 4: Lap trinh c++ có lời giải 3

#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; }

Page 5: Lap trinh c++ có lời giải 3

}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);

Page 6: Lap trinh c++ có lời giải 3

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;

}

Page 7: Lap trinh c++ có lời giải 3

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);

Page 8: Lap trinh c++ có lời giải 3

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 {

Page 9: Lap trinh c++ có lời giải 3

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.

Page 10: Lap trinh c++ có lời giải 3

#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]; }

Page 11: Lap trinh c++ có lời giải 3

} 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);

Page 12: Lap trinh c++ có lời giải 3

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){

Page 13: Lap trinh c++ có lời giải 3

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; }

Page 14: Lap trinh c++ có lời giải 3

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];

Page 15: Lap trinh c++ có lời giải 3

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++){

Page 16: Lap trinh c++ có lời giải 3

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>

Page 17: Lap trinh c++ có lời giải 3

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)

Page 18: Lap trinh c++ có lời giải 3

{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;

}

Page 19: Lap trinh c++ có lời giải 3

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;

Page 20: Lap trinh c++ có lời giải 3

}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;

}

Page 21: Lap trinh c++ có lời giải 3

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){

Page 22: Lap trinh c++ có lời giải 3

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";

}

Page 23: Lap trinh c++ có lời giải 3

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){

Page 24: Lap trinh c++ có lời giải 3

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<<" ";}

Page 25: Lap trinh c++ có lời giải 3