30/09/2018, 21:49

Xin hướng dẫn bài tập C

bool KiemTraSNT(int n)
{
	bool snt = true;
	if (n < 2)
		snt = false;
	else
	for (int i = 2; i < n; i++)
	if (n%i == 0)
	{
		snt = false;
		break;
	}
	return snt;
}

void NhapMang(int a[], int *pn)
{
	//Nhap so phan tu mang
	do
	{
		printf("Nhap so phan tu mang tu 1=>%d: ", MAXSIZE);
		scanf("%d", pn);
	} while (*pn<1 || *pn>MAXSIZE);
	//Nhap gia tri cac phan tu mang
	for (int i = 0; i < *pn; i++)
	{
		printf("a[%d] = ", i);
		scanf("%d", &a[i]);
	}
}

void TimViTriNguyenToMin(int a[], int n)//n la so phan tu trong mang
{
	int MinSNT = 0, i,j;
	for (i = 0; i < n - 1; i++)
	{
		if (KiemTraSNT(a[i]))
			MinSNT = a[i];
		break;
	}
	for ( j = i + 1; j < n; j++)
		if (KiemTraSNT(a[j]) && a[i]>a[j])
			MinSNT = a[j];
		printf("a[%d] = %d", j, a[j]);
}

Đề là tìm số nguyên tố nhỏ nhất trong mảng. Code e làm v sai ở đâu v mọi người
lúc e chạy thì giả sử nhập 5 phần tử vào mảng từ a[0] đến a[4]. Vậy mà lúc xuất ra screen thì nó ra a[5] = -54864154 (rác)

Xuân Lộc Lê viết 23:54 ngày 30/09/2018

ủa main đâu ta !!!

HoangNguyen viết 23:52 ngày 30/09/2018

mình quên sr nha

void main()
{
	int a[MAXSIZE], n = 0;
                 if (n == 0)
		      NhapMang(a, n);
		TimViTriNguyenToMin(a, n);
}
Xuân Lộc Lê viết 23:56 ngày 30/09/2018

Liệu phải do biến j ko ta? Hay do mảng a chưa khai báo giá trị default. Mình cũng là newbie. hiiii!!!

HoangNguyen viết 23:58 ngày 30/09/2018

mình làm đc r. Phải đặt 1 biến nhận j khi chạy qua minSNT nếu k nó sẽ xuất ra giá trị cuối của vòng lặp

viết 00:06 ngày 01/10/2018

do
{
printf(“Nhap so phan tu mang tu 1=>%d: “, MAXSIZE);
scanf(”%d”, pn);
} while (*pn<1 || *pn>MAXSIZE);

Tiện đây cho em hỏi luôn trong đoạn code này tại sao mình có thể sử dụng scanf mà không cần dấu & ạ.
Em cảm ơn .

Người bí ẩn viết 23:49 ngày 30/09/2018

void NhapMang(int a[], int *pn)

Vì nó là con trỏ và bản chất con trỏ là địa chỉ rồi nên không cần dấu &

P/S: Kể ra code của bạn chủ thớt cũng hơi ngược đời tí. Thường thì mảng a mới là con trỏ, chứ n hiếm khi là con trỏ

Bài liên quan
0