01/10/2018, 15:23
Tìm vị trí của phần tử lớn nhất trong dãy A
Viết chương trình nhập mảng N số nguyên. Tìm phần tử lớn nhất và các vị trí của nó trong dãy. Mình làm ra được phần tử lớn nhất và vị trí rồi nhưng không xuất ra được hết tất cả vị trí của phần tử lớn nhất. Mình không biết chỉnh sao cho ra được tất cả vị trí, mình mới bắt đầu học về mảng C thôi qwq.
#include <iostream>;
using namespace std;
int a[100];//mang a co toi da 100 phan tu nguyen
int N;// so phan tu can su dung
int vitrimax[100];//mang vitrimax co toi da 100 phan tu nguyen
//Phan than
int main(){
cout<<"Nhap so phan tu N (n<=100): ";
cin>>N;
for(int i=1;i<=N;i++){
cout<<"Nhap phan tu thu "<<i<<" : ";
cin>>a[i];
}
int max=a[1];
for(int i=2;i<N;i++)
if (max<a[i])
{
max=a[i];
}
for(int i=1;i<N;i++)
if (max==a[i])
{
vitrimax=i;
}
cout<<"Phan tu lon nhat la "<<max<<" nam o vi tri thu "<<vitrimax;
return 1;
}
Bài liên quan
Quay lại tìm thôi bạn tất nhiên không cần trở về đầu mảng.
ý bạn là làm thêm một cái vòng lặp nữa sau khi tìm được 1 vị trí?
tìm phần tử lớn nhất trong mảng đã -> trả về giá trị lớn nhất đó -> quay lại mảng so sánh thêm lần nữa với mảng == max thì xuất ra
ko cần dùng đến vòng for thứ 3 đâu ah , khi c tìm dc giá trị max = a[i] rồi c cout<<i ra là được , thứ 2 là tìm max tìm trực tiếp trong hàm main là dc rồi , nếu ko phải viết hàm con rõ ràng ah
Theo mình thì có các lỗi sau:
1.vitrimax bạn không cần khai báo mảng
2.khai báo mảng a có 100 phần tử nhưng nếu N < 100 thì sẽ tốn bộ nhớ
3.khi sử dụng mảng thì bạn nên cho vòng for chạy từ 0
4.max là 1 hàm trong c++ nên không được khai báo nó là biến
Mình sửa lại code như thế này bạn chạy thử đi.
Mình cảm ơn mọi người đã giúp đỡ. Nhờ ý kiến của mấy bạn, mình đã viết lại code mới và nó đã chạy thành công. Mình cảm ơn nhiều