01/10/2018, 09:17
Code tìm số nguyên tố lớn nhất trong n số nguyên luôn ra kết quả là 0
Đây là chương trình tìm số nguyên tố lớn nhất từ n số nguyên nhập từ tệp không hiểu sai ở đâu mà khi trong tệp không có số nguyên tố nào mà nó vẫn in ra là: Số nguyên tố lớn nhất là: 0,00.
Mọi người sửa giúp mình với.
#include"stdio.h"
void nhap(FILE *,int *,int *);
int ktnt(int);
int dem_nt(int,int []);
int max_nt(int,int [],int *);
int main()
{
float tbc;
int i,n,x[100],d,max,b1,b2;
FILE *a;
a=fopen("snt.txt","r");
nhap(a,&n,x);
printf("Day vua nhap la:");
for(i=1;i<=n;i++)
printf("%4d",x[i]);
d=dem_nt(n,x);
printf("
Trong day co %d so nguyen to",d);
b1=max_nt(n,x,&max);
if(!b1) printf("
Day khong co so nguyen to");
else printf("
So nguyen to lon nhat la: %d",max);
b2=tbc_nt(n,x,&tbc);
if(!b2) printf("
Day khong co so nguyen to");
else printf("
TBC cac so nguyen to la: %.2f",tbc);
}
void nhap(FILE *a,int *n,int *x)
{
fscanf(a,"%d",n);
for(int i=1;i<=*n;i++)
fscanf(a,"%d",&x[i]);
}
int ktnt(int x)
{ if(x==1) return 0;
for(int i=2;i<=x/2;i++)
if(x%i==0) return 0;
return 1;
}
int dem_nt(int n,int x[])
{
int d=0;
for(int i=1;i<=n;i++)
if(ktnt(x[i])) d++;
return d;
}
int max_nt(int n,int x[],int *max)
{
int i=1;
while(!ktnt(x[i])) i++;
*max=x[i];
for(i+1;i<=n;i++)
if(ktnt(x[i])&&x[i]>*max)
*max=x[i];
return 1;
}
Bài liên quan
Mọi người tìm giúp mình lỗi với sửa hoài vẫn không được.
hàm
max_nt()
bạn choreturn 1;
, thế nênb1 == 1
mọi lúc mọi nơiThế sửa kiểu gì vậy bạn mình sửa hoài vẫn không được
Thank mình sửa được rồi.