30/09/2018, 18:19
Liệt kê những số lớn nhất có trong mảng c++
Không biết e có làm sai chỗ nào không mà sao khi em in ra nó lại sai các bác ạ.
Mong các bác sữa dùm e với hic
// Bai_1.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include <iostream>
using namespace std;
#define MAX 100
//nhập mảng
void nhapmang(int a[], int n) {
for (int i = 0; i < n; i++) {
cout << "nhap phan tu a[" << i << "]" << ":";
cin >> a[i];
}
}
//xuất mảng
void xuatmang(int a[], int n) {
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
}
// liệt ke gtri Max trong mảng
void Liet_ke_Max(int a[], int n) {
int max = 0;
int pos;
for (int i = 0; i < n; i++) {
if (max < a[i]) {
max = a[i];
pos = max;
}
}
for (int j = 0; j< n; j++) {
if (a[j] =pos) {
n--;
cout << a[j] << " ";
}
}
}
int _tmain(int argc, _TCHAR* argv[]) {
int a[MAX], n,vt,x;
cout << "nhap phan tu n=";
cin >> n;
nhapmang(a, n);
xuatmang(a, n);
////////////////////////////
Liet_ke_Max(a, n);
return 0;
}
Bài liên quan
Bạn post lại code đi, sai hết chính tả rồi kìa.
hihi. không để ý cảm ơn nha. cơ mà sửa lỗi thuật toán dùm mình với
Bạn sai ở đây, để là
if(a[j] == pos)
nhéVới lại bạn nên gán giá trị ban đầu của max = a[0], vì nếu gán max = 0 rồi nhập vào mảng toàn số âm thì nó in ra max = 0 à.
haiz. bạn ko biết sáng giờ mình như điên lên với bài này. tức thiệt chứ sao sai chỗ đó hoài vậy ko bit. ư. cơ mà mình nghe thầy bảo ko nên gán max=a[0] mà có nhiều trường hợp nó bị sai
Cố lên bạn, tuy mất thời gian nhưng lại nhớ lâu, lần sau không bị mắc lại nữa.
Bạn học cách dùng debug thì kiểm tra lỗi sẽ tốt hơn đấy.
Mình nghĩ thầy bạn bảo thế là vì có một số bạn k dùng a[0] mà chỉ lấy a[1], a[2] … a[100] nên nếu gán max = a[0] sẽ bị lỗi.