Nhập môn Lập trình C++: Xuất ra giá trị chẵn

Sao em chạy cai chương trình này nó lại ko in ra số chẵn ạ?@@

#include <stdio.h>
void GiaTriChan(int a[30],int n)
{
	int i;
	for(i=0;i<=n-1;i++)
	if(a[i]%2==0);
	printf("\n gia tri chan la : %d",a[i]);
}
void NhapGiaTri(int a[30],int &n)
{
	int i;
	do
	{
		printf("nhap so phan tu : ");
		scanf("%d",&n);
	}while(!(n>0&&n<=30));
	printf("nhap gia tri cua %d phan tu : ",n);
	for(i=0;i<=n-1;i++)
	scanf("%d",&a[i]);
}
void XuatGiaTri (int a[30],int n)
{
int i;
printf("gia tri ban da nhap la : \n ");
for(i=0;i<=n-1;i++)
printf("%d\t",a[i]);
}
int main()
{
	int n,a[30],i;
	NhapGiaTri(a,n);
	XuatGiaTri(a,n);
	GiaTriChan(a,n);
	return 0;
}

sao có dấu “;” ở trước printf nhỉ?
tôi k biết c++, thấy lạ lạ.
p/s: kinh nghiệm là bạn nên để {} ở trong vòng lặp for, sau hàm if… kể cả trong đó là 1 lệnh đơn, và format lại code bạn sẽ dễ kiểm soát code hơn!

1 Like

Câu này vô hiệu, nó tương đương với

if(a[i] % 2 == 0) {} // không có gì cả :D
3 Likes

Cam ơn bạn đã góp ý :blush:

Vậy sửa thế nào bạn giúp mình với @@

Bỏ dấu ; sau if đi.
Đơn giản chưa!
“Sai 1 li, đi 1 dặm”.

Bạn có hiểu ; nghĩa là gì không?

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