trung bình cộng các số nguyên tố trong mảng .ai giúp sửa code với ạ
Tính trung bình cộng các số nguyên tố trong mảng
Bạn có ý tưởng gì chưa, đang gặp khó khăn ở đâu, cứ nêu ra thì mọi người mới giúp được
mình dùng hàm kiểm tra để kiểm tra trong mảng những phần tử nào là số nguyên tố
rồi dùng hàm tính trung bình thui .nhưng viết code sai ở đâu nên tổng k tính được.
Bạn có code thì cứ đưa lên đây
#include<stdio.h>
#include<conio.h>
//tinh trung binh cong cac so nguyen to
//khai bao nguyen mau protype
void nhapmang();
int KiemTraSoNguyenTo();
float tinhTBC();
//ham nhap mang
void nhapmang(int A[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("mang A[%d]",i);
scanf("%d",&A[i]);
}
}
// ham kiem tra
int KiemTraSoNguyenTo(int n)
{ int i;
if (n<=1)
{
return 0;
}
for (i=2;i<n;i++)
{
if (n%i==0)
{
return 0;
}
}
return 1;
}
/* int kiemtra(int A[],int n)
{ int i;
if(A[i]<=1)
return 0;
for(i=0;i<n;i++)
{
if(i%2==0||%i=0)
return 0;
}
return 1;
}*/
//ham tinh tong
float tinhTBC(int A[],int n)
{
int i,s=0;
float dem=0;
for(i=0;i<n;i++)
{
if(KiemTraSoNguyenTo(n)==1)
{ dem++;
s+=A[i];
}
}
return (float)s/dem++;
}
//ham chinh main
int main()
{
int A[100];
int n;
printf("\n nhap so luong phan tu trong mang n= ");
scanf("%d",&n);
nhapmang(A,n);
printf("tong la %f",tinhTBC(A,n));
getch();
}
kiểm tra giúp mình với ạ
#include <stdio.h>
#include <stdlib.h>
//tinh trung binh cong cac so nguyen to
//khai bao nguyen mau protype
void nhapmang();
int KiemTraSoNguyenTo();
float tinhTBC();
//ham nhap mang
void nhapmang(int A[],int n)
{
int i;
for(i=0;i<=n;i++)
{
printf("mang A[%d]",i);
scanf("%d",&A[i]);
}
}
// ham kiem tra
int KiemTraSoNguyenTo(int n)
{
int i;
if (n<=1)
{
return 0;
}
for (i=2;i<n;i++)
{
if (n%i==0)
{
return 0;
}
}
return 1;
}
/* int kiemtra(int A[],int n)
{ int i;
if(A[i]<=1)
return 0;
for(i=0;i {
if(i%2==0||%i=0)
return 0;
}
return 1;
}*/
//ham tinh tong
float tinhTBC(int A[],int n)
{
int i,s=0;
float dem=0;
for(i=0;i<=n;i++)
{
if(KiemTraSoNguyenTo(A[i])==1)
{
dem++;
s+=A[i];
}
}
return s/dem;
}
//ham chinh main
int main()
{
int A[100];
int n;
printf("\n nhap so luong phan tu trong mang n= ");
scanf("%d",&n);
nhapmang(A,n);
int i = 0;
for(i=0;i<=n;i++)
{
printf("%d\n",KiemTraSoNguyenTo(A[i]));
}
printf("tong la %f",tinhTBC(A,n));
getch();
}
Bạn xem lại xem được chưa nhá, sai mấy chỗ , mà lần sau bạn đăng code thì bôi đen code rồi ấn Ctrl + K thì code sẽ hiện dễ nhìn hơn
Thanks cậu nha . nhưng mình ngĩ trong hàm main không cần vòng lặp for
À, mình quên mất không xóa , chỗ đó là mình test hàm kiểm tra nguyên tố thôi
cậu xiêu thật đấy
cho e hỏi ngu tí! sao lại tách ra thành nhiều hàm thế ?
sao không phải là int main(void){} mà chỉ int main() thôi vậy @@!
Vì main cũng là một hàm thôi. Còn int main(void) và int main() đều giống nhau, int main(void) thì nó sẽ rõ ràng hơn (thông báo là không có tham số nào cả)
bạn xem thêm ở đây: http://www.geeksforgeeks.org/difference-int-main-int-mainvoid/
Cái phần kiểm tra số nguyên tố, theo mình i < n/2 được rồi, không cần phải chạy đến n đâu
Có được k nhỉ , bạn giải thích được không
i chạy từ 2 đến căn của n là được
xem thêm ở đây: http://java.dzone.com/articles/algorithm-week-determine-if
Hic…không biết nói sao nữa. Ví dụ bạn có số N đi. N/2 = B.
Bây giờ bạn có số C > B => N/2< C, hay noi’ cách khác là N/C < 2 => Nghĩa là khi bạn chạy. i > n/2, thì kết qua? chia luôn nhỏ hơn 2 => kiểm tra chi, mình muốn kiểm tra 2+ mà
=)) Vụ này hay à nha. Để coi coi
Hehe, đã hiểu
Google được đoạn thế này
Tuy nhiên, suy nghĩ thêm một chút chúng ta sẽ thấy rằng không cần phải kiểm tra đến giá trị i = n – 1 mà thực chất chỉ cần tới n/2 (n div 2) vì không có ước số nào của n lớn hơn n/2.
Lại suy nghĩ thêm một chút chúng ta sẽ thấy rằng cũng không cần thiết phải kiểm tra đến giá trị n/2 mà chỉ cần đến căn bậc 2 của n là được (các bạn hãy tính toán một chút để thấy tại sao lại như vậy?)
Nguồn: http://expressmagazine.net/development/817/bai-toan-kiem-tra-so-nguyen
=)) Giờ thì mình đã hiểu sao lại kiểm tra đến căn bậc 2, phục mấy người đó thiệt
code này của bạn chưa có phần nếu mảng không có số nt thì sẽ hiển thị ra màn hình cái gì?