In ra ucln của những cặp số kề nhau trong mảng 1 chiều c/c++

Mọi người xem hộ mình UCLN in ra từng phần tử kề nhau trong mảng NTN? với ạ!! mà code mình nó in ra UCLN của tất cả các phần tử trong mảng. Cần thay đổi những chỗ nào ? pls!
Code của mình:

#include<stdio.h>
#include<stdlib.h>
#define max 10

void nhap(int a[],int n);
void xuat(int a[],int n);
int check_UCLN(int a[],int n);
// UCLN cua 2 so nguyen
int UCLN(int x,int y){
	while(x!=y){
		if(x<y)
			y=y-x;
		else if(x>y)
			x=x-y;
	}
	return y;
}
int main(){
	int a[max],n,i;
	int x,y;
	printf("Nhap n = ");
	scanf("%d",&n);
	nhap(a,n);
	printf("\nMang n[].\n");
	xuat(a,n);
	for(i=0;i<n-1;i++){
		x=a[i];
		y=a[i+1];
		printf("\nUCLN cua %d va %d la %d",x,y,check_UCLN(a,n));
	}
	return 0;
}
void nhap(int a[],int n){
	for(int i=0;i<n;i++){
		printf("a[%d] = ",i);
		scanf("\n%d",&a[i]);}
}
void xuat(int a[],int n){
	for(int i=0;i<n;i++){
		printf("%d",a[i]);
	}
}
// ham tim UCLN cua tat ca cac phan tu trong mang
int check_UCLN(int a[],int n){
	int x=a[0]; // dau tien cho gia tri UCLN la phan tu dau tien
	for(int i=1;i<n;i++){
		x=UCLN(x,a[i]); // tim UCLN cua phan tu tiep theo trong mang
		fflush(stdin);
	}
	return x;
}

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

Mình nghĩ sau khi có hàm tìm ƯCLN 2 số rôì thì bạn nên chạy vòng lặp từ 0 đến n-1 và in ra ƯCLN của a[i] và a[i+1] nhé :slight_smile:

1 Like

n-2 chứ bạn, nếu n-1 thì a[i+1] sẽ bị nhảy ra ngoài mảng.

1 Like
for (int i=0; i<n-1; i++)
           cout<<ucln(a[i],a[i+1]);

chạy đến n-1 thui mà

1 Like

Cám ơn b mình làm đc rồi nhé :v: tks

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?