Code tính trung bình cộng của các số nguyên tố trong mảng không nhập được dữ liệu

Đề bài: viết chương trình tính trung bình cộng các số nguyên tố trong mảng

Mọi người ơi, khi mình chạy thì có 0 error, 1 warning (mình biết chắc sai cái gì đó rồi nhưng mình không tìm được lỗi sai đó). Sau khi mình chạy thì khoảng 1s sau nó tự kết thúc chương trình và để “Press any key…” mà chưa nhập vô dữ liệu gì hết.

#include<stdio.h>
#include<conio.h>
#include<math.h>
void Nhap(int A[],int &nA);
int kiemtraSonguyento(int x);
void tachMang(int A[],int nA,int B[],int &nB);
void tbcSonguyento(int B[],int nB,double &tbc);
void Xuat(double tbc);

void main()
{
	int A[1000000],nA,B[1000000],nB;
	Nhap(A,nA);
	double tbc;
	tbcSonguyento(B,nB,tbc);
	Xuat(tbc);
}
void Nhap(int A[],int &nA)
{
	scanf("%d",&nA);
	for (int iA=0;iA<nA;iA++)
		scanf("%d",&A[iA]);
}
int kiemtraSonguyento(int x)
{
	int dem=0;
	for (int i=1;i<=x;i++)
	if (x%i==0)
		dem=dem+1;
	if (dem==2)
		return 1;
	return 0;
}
void tachMang(int A[],int nA,int B[],int &nB)
{
	nB=0;
	for (int iA=0;iA<nA;iA++)
	{
		if (kiemtraSonguyento(A[iA])==1)
			B[nB++]=A[iA];
	}
}
void tbcSonguyento(int B[],int nB,double &tbc)
{
	int tong=0;
	for (int iB=0;iB<nB;iB++)
	{
		tong=tong+B[iB];
	}
	tbc=float(tong)/nB;
}
void Xuat(double tbc)
{
	printf("%.2f",tbc);
	getch();
}

Code của bạn mình chạy trên online compiler vẫn nhập được bình thường mà nhỉ

2 Likes

Chỉ là cảnh báo không phải lỗi, có ghi số dòng có cảnh báo.

Sao lại nhập AnA rồi lại dùng BnB (chưa có dữ liệu) để tính???

3 Likes

Dạ vì em tìm trong dãy A số nào là số nguyên tố rồi cho số đó vào dãy B đó anh, nhưng em chắc là sai ở chỗ mà em chưa biết phải làm sao

Mảng đến 1 triệu phần tử? 100 hay 1000 là đủ rồi. Ai mà rảnh nhập đến cả triệu, hàng ngàn là mệt lắm rồi.

Còn lỗi thì không rõ bạn bị gì. Nhưng theo trả lời #2 thì chẳng có lỗi nào cả.

2 Likes

Không. Người ta sinh 1 triệu số bằng máy (random), in ra file, rồi redirect file đó với stdin của chương trình cần chạy :penguin:

4 Likes

Cảm ơn các anh. Em tìm và sửa lỗi được rồi a :smiley:

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