anh chị cho em hỏi Tại sao trong bài mảng một chiều này, khi khai báo biến hằng Size " define Size 100 " thì nó chạy đúng, còn khi bỏ nó đi thì chỉ có phần tìm vị trí lớn nhất nó lại bị sai ạ?
#include "stdafx.h"
#include <iostream>
using namespace std;
define Size 100
---------------
void Nhap(int a[10], int &n);
void Xuat(int a[10], int n);
int ViTriLonNhat(int a[10], int n);
void SapXep(int a[10], int n);
int main()
{
int n;
int a[10];
cout << "Nhap mang:" << endl;
Nhap(a, n);
cout <<"Xuat"<< endl;
Xuat(a, n);
cout << " vi tri lon nhat: " << ViTriLonNhat(a,n)<< endl;
cout << " mang duoc sap xep ";
SapXep(a, n);
cout << endl;
Xuat(a, n);
system("pause");
return 0;
}
void Nhap(int a[10], int &n)
{
cout << " nhap n: ";
cin >> n;
for (int i = 0; i < n; i++)
{
cout << "a [" << i << "] = ";
cin>>a[i] ;
}
}
void Xuat(int a[10], int n)
{
for (int i = 0; i < n; i++)
{
cout << "a [" << i << "] = "<<a[i]<<endl;
}
}
int ViTriLonNhat(int a[10], int n)
{
int vt = 0;
int lonnhat = a[vt];
for (int i = 0; i <= n-1; i++)
{
if (a[i] > lonnhat)
vt = i;
}
return vt;
}
void SapXep(int a[10] , int n)
{
for (int i = 0; i <= n-2; i++)
{
for (int j = i+ 1; j <= n-1; j++)
{
if (a[i] > a[j])
{
int tem = a[i];
a[i] = a[j];
a[j] = tem;
}
}
}
}