Hỏi về bài Số thứ tự của giá trị lớn nhất

Mọi người giúp e với, e làm toàn bị sai.
Tìm giá trị lớn nhất và vị trí trong mảng.
INPUT: Dòng 1 ghi số n(1<=n<=30000).
Dòng 2 ghi n số nguyên.
OUTPUT: Một dòng duy nhất chứa phần tử lớn nhất và vị trí của nó trong mảng

#include<bits/stdc++.h>
using namespace std;
int main()
{
	long long a[30000], n, max, dem=0, i;
	cin >> n;
	for(i=1;i<=n;i++)
		cin >> a[i];
	max=a[1];
	for(i=1;i<=n;i++)
	{
		if(max<a[i])
		{
			max=a[i];
			dem++;
		}
		else dem++;
	}
	cout <<  max << " " << dem;
	return 0;
}

Array trong C/C++ chạy từ 0 chứ không phải 1. :slightly_smiling_face:

Còn cái dem++ sao phải cho vô cả if true lẫn if false :laughing:

Sao bạn không gán dem = i. :thinking:


Cách khác cho bạn.
int iMax = 0;
cin >> n;
for (int i = 0; i < n; i++) {
  cin >> a[i];
  if (a[i] > a[iMax])
    iMax = i;
}
cout << a[iMax] << ' ' << iMax + 1;

Edit:

long long a[30000];

Chỗ này là tràn stack rồi :sweat_smile: dùng cấp phạt động đi bạn. :slight_smile:

2 Likes

Số thứ tự ko phải vậy :slight_smile:

Có 240K thôi sao tràn đc :smiley:

3 Likes

Là sao nhỉ anh. :thinking:

1 Like

nhưng mình tưởng có thể cho chạy từ bao nhiêu thùy thích chứ???

Có ai kể chuyện miếng đất (và 2 anh em :smiling_imp:) cho bạn ấy hiểu không nhỉ?

4 Likes

Em không biết chuyện này rồi.
Hóng anh Situ kể. :slight_smile:

2 Likes

Mình nhớ đã từng đọc, tìm thì được:


Cấp 3000 ô đất cho bạn, bạn lại bỏ ô đầu tiên a[0]. Đến ô cuối cùng có khả năng “lấn đất” đấy.

3 Likes

> Số thứ tự của giá trị lớn nhất
> Code thì cái dem không hiểu tác dụng

nếu a[i] > max thì gắn hẳn cái vị trí vào luôn

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