mọi người giúp với, sao lại sai lỗi này
, vì mới học nên còn chưa hiểu nhiều.Code C bị nhiều lỗi
Dùng nhiều scope chi cho phức tạp thế bạn? Mấy cái else và else if kia bỏ ra ngoài hết đi, không cần ngoặc nhọn đâu, chỉ có cái else cuối là cần thôi.
Theo mình hiểu là bạn đang muốn viết một hàm để kiểm tra số nguyên N truyền vào đúng không?
mình đg viết ct nhập vào 1 mảng các số nguyên, in ra màn hình các số nguyên tố có trong mảng
Vậy thì:
- Bạn định nghĩa sai tham số truyền vào. Ở đoạn book ktsnt(int n) thì “int n” là truyền vào 1 số nguyên chứ không phải 1 mảng số nguyên.
- Nếu truyền được 1 mảng rồi bạn dùng for truy xuất đến từng phần tử rồi xin luôn nó ra màn hình nếu nó là SNT.
Mong là bạn sẽ hiểu.
#include<stdio.h>
#include<conio.h>
#include<math.h>
void nhapmang(int a[100], int n)
{
int i;
printf("\n so phan tu cua mang la n= :");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("a[%d]= ",i);
scanf("%d",&a[i]);
}
}
void xuatmang(int a[100], int n)
{
int i;
for(i=0; i<n; i++)
printf("%d",a[i]);
}
// ham kt so nguyen to
_Bool ktsnt(int n)
{
int i;
if(n<2)
{
return 0;
}
else
if(n==2)
{
return 1;
}
else
if(n%2==0)
{
return 0;
}
else
{
for( i=2;i<n;i++)
if(n%i==0)
{
return 0;
}
}
return 1;
}
// ham in ra man hinh cac so nguyen to
void sont(int a[], int n)
{
int i;
for(i=0;i<n;i++)
{
if(ktsnt(a[i])==1)
{
printf("%d",a[i]);
}
}
}
// ham chinh
int main()
{
int a[100],i, n;
printf("\n\n\t\tnhap mang\n");
nhapmang(a,n);
printf("\n\n\t\txuat mang\n");
xuatmang(a,n);
printf("\n\n\t\tcac so nguyen to la\n");
sont(a,n);
getch();
}
bạn kiểm tra giúp mình xem có sai chỗ nào ko mà ko in ra đc SNT
Hàm KTSNT của bạn bị sai, bạn tìm hiểu lại cách truyền 1 mảng vào hàm và giải thuật check số NT nhé.
cảm ơn bạn. mới hc nên ko hiểu nhìu cho lắm

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