01/10/2018, 12:20
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("
phan 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("
So lon nhat la %d",max);
return 0;
}
Bài liên quan
Check vẫn đúng
Nếu bạn muốn duyệt các phần tử có chỉ số != 0 thì
hoặc
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àoa[i+1]
tức là truy cập vàoa[n]
, vàa[n]
có giá trị rác (bạn chỉ nhập n giá trị a[0] -> a[n-1] thôi).