Hỏi đáp về vòng lặp

Câu hỏi e ghi ở chương trình bên dưới ạ.

#include<conio.h>
#include<stdio.h>
#define MAX 100
void Nhapmang(int a[],int n)
{
	for(int i=0;i<n;++i)
	  {
	  	printf("Nhap phan tu thu %d:",i+1);
	  	scanf("%d",&a[i]);
	  	}
	}
void Xuatmang(int a[],int n)
{
	for(int i=0;i<n;++i)
	  {
	  	printf("\nphan tu thu %d la:%d ",i+1,a[i]);
	  	
	}
	}
int Checkmax(int a[MAX],int n)
{
	int max;
	max=a[0];
	for(int i=0;i<n;++i)  /*sao chỗ này e cho chạy i =0 và gán max =a[i+1] thì chương  trình chạy đưa ra các só bất kì hình như là địa chỉ của biens, còn khi e để i chạy từ 1 và max=a[i] thì chương trình chạy được ạ.*/
	    if(max<a[i+1]
		)
	      max=a[i+1];
	return max;
	}
	

int main(){
	int max,n,a[MAX];
	printf("Nhap so phan tu cua mang");
	scanf("%d",&n);
	Nhapmang(a,n);
	Xuatmang(a,n);
	max=Checkmax(a,n);
	printf("\nSo lon nhat la %d",max);
	
	return 0;
}

Check vẫn đúng :scream::scream::scream:

:3333

Nếu bạn muốn duyệt các phần tử có chỉ số != 0 thì

for (int i=1; i<n; i++)
    if (max < a[i])

hoặc

for (int i=0; i<n; i++) // chạy từ 0 không sao cả
    if (max < a[i])

chứ đừng chạy từ 0 rồi truy cập a[i+1]. i = n-1 thì i+1 = n, lúc này truy cập vào a[i+1] tức là truy cập vào a[n], và a[n] có giá trị rác (bạn chỉ nhập n giá trị a[0] -> a[n-1] thôi).

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?