01/10/2018, 00:38
Ai sửa lỗi giúp e với ạ
VCT cho phép nhập vào mảng gồm n số nguyên.
Xuất mảng vừa nhập ra màn hình.
- Viết hàm kiểm tra một giá trị có phải số nguyên tố hay ko? Nếu là số nguyên tố thì trả
về 1 ngược lại trả về 0.
- Xuất các số nguyên tố ra màn hình và đếm có bao nhiêu số nguyên tố.
#include <stdio.h>
int n,i;
int mang[100];
int dem=0;
void nhapmang()
{
printf ("Nhap so phan tu mang: ");
scanf ("%d",&n);
for (int i=0; i<n ; i++)
{
printf ("Nhap phan tu mang thu %d :",i);
scanf ("%d",&mang[i]);
}
}
void xuatmang()
{
for (int i=0;i<n;i++)
printf ("%5d",mang[i]);
}
int SNT(int a)
{
for (i=2;i*i<a;i++)
{
if (a%i==0)
return 0;
}
return 1;
}
void xuatSNT()
{
for (i=0;i<n;i++)
{
if (SNT(mang[i])==1)
{
printf("%4d",mang[i]);
dem++;
}
}
}
int main ()
{
nhapmang();
printf ("Mang sau khi nhap :
");
xuatmang();
printf ("
cac so nguyen to trong mang la: ");
xuatSNT();
printf ("
co %d so nguyen to trong phan tu",dem);
}
Bài liên quan
cái này là <= a mới đúng
e sửa r mà chạy chương trình vẫn sai
còn cả trường hợp nó nhỏ hơn 2 nữa, nó nhỏ hơn 2 thì nó k phải snt
Mà cái trường hợp bạn kiểm tra ra sai là số nào vậy?
nếu đúng là 1 nếu sai là 0 a
ý là bạn nhập vào số nào mà nó kiểm tra ra sai?
e nhập mảng gồm 5 số từ 1 tới 5 , nó chỉ hiện ra số 3 thoi a
code dung biến trùng kìa, hàm snt với hàm xuatsnt dung chung biết i kìa
sau 1 buổi mày mò e đã làm đc , cảm ơn a đã chỉ e
Không biết là em có phải là đã học pascal trước và đang học lên C/C++ hay không, nhưng a có một lời khuyên là hạn chế tối đa biến toàn cục (global variable) đi, xài biến cục bộ, và tập truyền các tham số cần dùng vào hàm nào cần xài.
Một trong những lý do mà em bị sai trong bài này cũng là từ việc sử dụng biến toàn cục mà ra.
Và sau này khi phát triển thực tế thì cũng không ai dùng biến toàn cục như vậy cả.
dạ e cảm ơn lời khuyên của a