Cho biết phần tử X xuất hiện lần thứ "m" tại vị trí thứ mấy, với x và m được nhập từ bàn phím!

Mong mọi người giải đáp hộ mình bài này, nghĩ mãi không ra :joy:

Viết chương trình nhập vào mảng một chiều gồm n phần tử kiểu số nguyên. In ra mảng theo giá trị ngược. Cho biết phần tử X xuất hiện lần thứ “m” tại vị trí thứ mấy, với x và m được nhập từ bàn phím!

//vị trí xuất hiện của X
int m = 0;
for(int i=0; i<n; i++)
     if(x == a[i])
     {
            printf("X o vi tri thu %d\n", i);
            m++; // m là biến đếm xem X xuất hiện bao nhiêu lần
     }
printf("So lan xuat hien cua X trong mang la %d\n", m);
//xuất mảng ngược
for(int i=n-1; i>=0; i--)
    printf("%d\t", a[i]);

Nó bảo cho biết phần tử x xuất hiện lần thứ “m” tại :joy: vị trí thứ mấy nữa

Mấy cái đơn giản này bạn có tự suy nghĩ trước chưa mà bảo suy nghĩ mãi không ra :smile: Phải tư duy trước khi hỏi một cái gì đó để ghi nhớ kiến trức đó lâu hơn :grin:
Thêm nữa là m là biến đếm thì làm sao nhập từ bàn phím được, trước khi bạn nhập các phần tử của mảng thì làm sao bạn biết được X xuất hiện bao nhiêu lần

Nhưng đề bảo vậy mà bạn!!!

Có ai biết Cho biết phần tử X xuất hiện lần thứ “m” tại vị trí thứ mấy, với x và m được nhập từ bàn phím!
là sao không v :joy:

Cách làm của bạn mình cũng nghĩ rồi, nhưng cảm thấy nó không giống với đề bài!!!
Nhưng cũng cảm ơn bạn rất nhiều :grin:

Gọi mảng nhập vào là a[], duyệt tìm các vị trị của x, lưu vị trí vào mảng b[].
Nhập m, in ra b[m] là xong. :yum:

1 Like

bạn code cụ thể cho mình hiểu được không, mình mới học phần này nên còn ngu nó :joy:
cái phần lưu vị trí mình không hiểu lắm

Ý tưởng như trên. :smile:

#include <iostream>
using namespace std;

int main() {
	int n, x, m;			
	int a[50], b[50];	        // mảng b dùng để lưu vị trí các phần tử x
	
	cout << "Nhap n = ";
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cout << "Nhap a[" << i << "] = ";
		cin >> a[i];
	}			        // nhập dãy số n phần tử
	
	cout << "Nhap x = ";
	cin >> x;
	int t = 1;
	for (int i = 1; i <= n; i++) {
		if (a[i] == x) {	//duyệt mảng a, nếu tìm được x thì lưu vị trí xuất hiện vào mảng b
			b[t] = i;
			t++;
		}
	}
	cout << "Nhap m = ";
	cin >> m;
	cout << "Phan tu " << x << " xuat hien lan thu " << m << " tai vi tri thu " << b[m];
}
3 Likes

Cảm ơn bạn rất nhiều :grin:

1 Like

t có phải là số phần tử trong mảng không bạn

t là biến để đánh dấu chỉ số của mảng b[] thôi, b[t] = vị trí xuất hiện của x

ví dụ t = 1 thì b[1] là vị trí xuất hiện của x lần thứ nhất trong mảng a[], t = 2 là vị trí lần thứ 2… như vậy muốn ra vị trí xuất hiện lần thứ m, ta chỉ cần in ra b[m] là xong. :smile:

2 Likes

thanks bạn :grinning:

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