30/09/2018, 18:21

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

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!

Interns viết 20:35 ngày 30/09/2018
//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]);
Minh Vương viết 20:26 ngày 30/09/2018

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

Interns viết 20:25 ngày 30/09/2018

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 Phải tư duy trước khi hỏi một cái gì đó để ghi nhớ kiến trức đó lâu hơn
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

Minh Vương viết 20:37 ngày 30/09/2018

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

Minh Vương viết 20:26 ngày 30/09/2018

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

Minh Vương viết 20:30 ngày 30/09/2018

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

viết 20:29 ngày 30/09/2018

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.

Minh Vương viết 20:27 ngày 30/09/2018

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ó
cái phần lưu vị trí mình không hiểu lắm

viết 20:33 ngày 30/09/2018

Ý tưởng như trên.

#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];
}
Minh Vương viết 20:31 ngày 30/09/2018

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

Minh Vương viết 20:30 ngày 30/09/2018

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

viết 20:32 ngày 30/09/2018

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.

Minh Vương viết 20:26 ngày 30/09/2018

thanks bạn

Bài liên quan
0