30/09/2018, 23:24
Lỗi khi sắp xếp mái ngói ngược
#include <iostream>
#define MAX 100
using namespace std;
void nhapMang(int, int);
void xuatMang(int, int);
void hoanVi(int *, int *);
void sapXepGiam(int *, int);
void maiNgoiNguoc(int *, int);
void nhapMang(int arr[], int n)
{
for (int i = 0; i < n; i++)
{
cout << "arr[" << i << "] = ";
cin >> arr[i];
}
}
void xuatMang(int arr[], int n)
{
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
void hoanVi(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void sapXepGiam(int *arr, int n)
{
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (arr[i] < arr[j])
hoanVi(&arr[i], &arr[j]);
}
}
}
void maiNgoiNguoc(int *arr, int n)
{
sapXepGiam(arr, n);
for (int i = 0; i < n; i++)
{
hoanVi(&arr[n / 2], &arr[n - 1]);
}
}
int main()
{
int n, arr[MAX];
cout << "Nhap n = ";
cin >> n;
nhapMang(arr, n);
xuatMang(arr, n);
maiNgoiNguoc(arr, n);
xuatMang(arr, n);
system("pause");
return 0;
}
Bài liên quan
Bạn không mô tả bài toán, hướng làm của bạn, và lỗi mắc phải?
mình gặp phải lỗi ở hàm maiNgoiNguoc
nhưng giờ thì tìm ra rồi
Có vẻ như bạn đang muốn làm thế này:
ko bạn.
Hàm này mình nghĩ là đúng rồi
mình bị sai chỗ bị thừa vòng lặp for này
Nếu task của bạn là sắp xếp ngược thì mình nghĩ bạn thừa hàm maiNgoiNguoc()
Mình chạy thấy nó hoàn thành task bình thường.
Mình cũng đang học nên trao đổi chơi
bài này ko phải là sắp xếp theo mảng giảm dần mà là sắp xếp mảng theo hình mái ngói ngược
Ừ ha, hèn gì thấy cái hàm đó trông ngồ ngộ. Mình là thợ xây cũng lâu mà sao ko bít kiểu này ta