Code đếm số lượng số âm, số dương và số 0 trong mảng không chạy được

em dùng hàm để tìm xem có bao nhiêu số âm, số dương vào số 0 trong mảng nhưng code em ko chạy. Em ko biết sai chỗ nào mong các cao nhân chỉ giúp

#include <stdio.h>
int i,n,s,k,t;
int kiemtra(int a[i])
{

	for (int i = 0; i <=n-1; ++i)
	{
		if (a[i]<0)
		{
			s=s+1;
		}
	}
	for (int i = 0; i <=n-1; ++i)
	{
		if (a[i]==0)
		{
			k=k+1;
		}
	}
	for (int i = 0; i <=n-1; ++i)
	{
		if (a[i]>0)
		{
			t=t+1;
		}
	}
	printf("\nso phan tu duong la: %d\n",t );
	printf("so phan tu bang 0 la:%d \n",k);
	printf("so phan tu am la: %d\n",s );
}
int main(int argc, char const *argv[])
{
	int n,s,k,t;
	int a[100];
	s=0;
	k=0;
	t=0;
	do{
		printf("nhap vao so phan tu cua mang: \n");
		scanf("%d",&n);
		if (n<=0)
		{
			printf("so phan tu phai lon hon 0\n");
		}
		}while(n<=0);
		for (int i = 0; i <=n-1; ++i)
		{
			printf("nhap phan tu thu %d: \n",i+1 );
			scanf("%d",&a[i]);
		}

	for (int i = 0; i <=n-1; ++i)
	{
		printf("%d ",a[i]);
	}
	kiemtra(a[i]);

	return 0;
}

Lần sau nhớ Markdown code để mọi người dễ nhìn bạn nhé !

Truyền cả mảng vào hàm chứ truyền mỗi a[i] là 1 phần tử thì chạy kiểu gì,chưa kể toàn biến toàn cục.Mà đếm thì 1 vòng lặp chứ sao phải tận 3 vòng lặp.

2 Likes

Em có thể dùng IDE nào đó để debug (set break point, kiểm tra giá trị). Anh thường dùng Code Block.
Trong đoạn code của em anh nghĩ vấn đề ở chỗ em sử dung biến local và toàn cục

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