Tìm âm lớn nhất trong mảng.
#include <stdio.h>
void ALN(int a[], int n);
int main(int argc, char *argv[])
{
int a[10]={-2,-1,-3,0,1,3,2};
int n=7;
ALN(a,n);
return 0;
}
void ALN(int a[], int n)
{
int ALN=0;
for(int i=0; i<n; i++)
{
if(!ALN&&a[i]<0)
ALN=a[i]; // Tại sao qua vòng lặp thứ 2 trở về sau thì dòng này lại bị bỏ qua?
if(a[i]<0)
{
if(ALN<a[i])
ALN=a[i];
}
}
printf("Am lon nhat = %d", ALN);
}
Cho e hỏi là tại sao trong if(!ALN&&a[i]<0) vòng lặp thứ nhất thì ALN=-2, nhưng khi qua vòng lặp 2 và các vòng lặp sau thì dòng code ALN=a[i] bị bỏ qua? Và !ALN chằng phải là khác giá trị hiện tại của ALN sao, nếu vậy thì tại sao các giá trị sau (-1,-3) đều thỏa điều kiện lại không được gán?