1. Trang chủ
  2. » Công Nghệ Thông Tin

bài tập c phần tư duy bài 10

4 89 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 29,78 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 1

Bài 171: Cho mảng 1 chiều các số nguyên Hãy viết hàm tìm ước chung lớn nhất của tất cả các phần tử trong mảng

#include<stdio.h>

#include<conio.h>

#include<math.h>

#define MAX 100

void nhap (int a[], int &n)

{

do

{

printf("\nNhap so phan tu: ");

scanf("%d", &n);

if(n <= 0 || n > MAX) {

printf("\nSo phan tu khong hop le Xin kiem tra lai !");

} }while(n <= 0 || n > MAX);

for(int i = 0; i < n; i++)

{

printf("\nNhap a[%d]: ", i);

scanf("%d", &a[i]);

}

}

Trang 2

void xuat(int a[], int n)

{

for(int i = 0; i < n; i++)

{

printf("%4d", a[i]);

}

}

int TimSoNhoNhat(int a[], int n)

{

int min = a[0];

for(int i = 1; i < n; i++)

{

if(a[i] < min) {

min = a[i]; //min = (min < a[i])? min: a[i];

} }

return min;

}

// kiểm tra xem ước số có phải là ước chung lớn nhất của mảng hay không

bool KiemTraUocSoChung(int a[], int n, int UocSo)

{

for(int i = 0; i < n; i++)

{

Trang 3

if(a[i] % UocSo != 0) {

return false; }

}

return true;

}

int TimUocSoLonNhatCuaMang(int a[], int n)

{

// Do 1 số muốn chia hết tất cả các số trong mảng thì số đó // phải chia hết cho số nhỏ nhất trong mảng

for(int UocSo = TimSoNhoNhat(a, n); UocSo >= 1; UocSo ) {

if(KiemTraUocSoChung(a, n, UocSo) == true) {

return UocSo;

} }

return 1;

}

int main()

{

int n;

int a[MAX];

Trang 4

nhap(a, n);

xuat(a, n);

int Kq = TimUocSoLonNhatCuaMang(a, n);

printf("\nUoc So chung lon nhat cua mang la %d", Kq);

getch();

return 0;

}

Ngày đăng: 19/10/2016, 22:27

w