Kiểm tra lỗi đoạn code xuất ra các số nguyên tố trong mảng

Dear mọi người,
Mình có đoạn code nhập và xuất các giá trị phần tử trong mảng. Sau đó mình có code thêm là xuất ra những số nguyên tố trong mảng. Khi mình chạy thử thì lúc được lúc không như file đính kèm. Mọi người chỉ giáo giúp mình nhé.
Thank mọi người

#include<stdio.h>
#include<conio.h>
typedef enum {F, T}
boolean;
void Nhap_mang(int arr[], int n);
void Xuat_mang(int arr[], int n);
int main()
{
	int arr[100];
	int n, i, j;
	boolean KT = T;
	do
	{
		printf("Nhap so luong phan tu mang: ");
		scanf("%d", &n);
		if (n <= 0 || n > 100)
		{
			printf("So luong phan tu mang chua hop le! Moi ban nhap lai\n");
		}			
	} while(n <= 0 || n > 100);
	Nhap_mang(arr, n);
	Xuat_mang(arr, n);
	



printf("\nCac so nguyen to trong mang la:");
	for (i = 0; i < n; i++)
	{
		if (arr[i] < 2)
		{
			KT = F;
		}
		else if (arr[i] == 2)
		{
			KT = T;
		}
		else
		{
			if(arr[i] % 2 == 0)
			{
				KT = F;
			}		
			else
			{
				for (j = 2; j < arr[i]; j++)
				{
					if (arr[i] % j == 0)
					{
						KT = F;
						break;					
					}			
				}	
			}
		}
		if(KT == T)
		{
			printf("%d ", arr[i]);
		}
	}
	
	getch();
	return 0;
}

int i;
void Nhap_mang (int arr[], int n)
{
	for (i = 0; i < n; i++)
	{
		printf("Nhap gia tri arr[%d]: ", i); 
		scanf("%d", &arr[i]);
	}
}
void Xuat_mang(int arr[], int n)
{
	printf("Gia tri cua cac phan tu trong mang: ");
	for (i = 0; i < n; i++)
	{
		printf("%d ", arr[i]);	
	}
}

Viết hàm kiểm tra 1 số nguyên tố. Nhìn 2 for lồng nhau và if - else if - else chóng mặt quá. :upside_down_face:

Xét mã của bạn:
Khi KT == T thì mới in ra.
Thế bạn xem trong elsefor thứ 2 bạn có gán KT = T chỗ nào không? Bạn chỉ gán KT == T khi arr[i] == 2 thôi.

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