01/10/2018, 12:34
Mọi người ơi chỉ mình cách gọi hàm đúng trong bài này với
Đề: cho một số nguyên dương, đếm xem n có bao nhiêu chữ số là số nguyên tố. VD 455 có 2 số nguyên tố
Mình định viết một cái hàm tính số nguyên tố riêng rồi viết một cái hàm xét lấy từng chữ số của số n ra để xét nhưng mình chưa hiểu rõ cách gọi hàm xét số nguyên tố ra trong một hàm khác lắm mọi người giúp mình với
#include<stdio.h>
#include<math.h>
void nhap( int &n);
int xet( int n, int x);
int SNT( int x);
void xuat( );
void main()
{
int n,dem,x;
nhap(n);
SNT(x);
int d=xet(n,x);
xuat(dem);
}
void nhap( int &n)
{
scanf("%d",&n);
}
int SNT( int x)
{
int dem =0;
if (x < 2)
return 0;
for (int i = 2; i <= sqrt((float)x); i ++)
{
if (x%i==0)
return 0;
else dem= dem +1; return dem;
}
}
int xet( int n, int x)
{
while(n!=0)
{
x=n%10;
n=n/10;
SNT(int x);
}
return SNT;
}
Bài liên quan
SNT(x) thôi bạn ơi.
Cho return trong vòng while luôn.
Để lỡ nó có 2 số hay 3 số nt thì nó xuất hết. Còn bạn làm ở ngoài như vậy nó chỉ xuất số nt x cuối.
Hàm kt snt là trả về 1:0(hàm này viết kiểu đếm ước số) nên bạn phải viết hàm if trong vòng while nhe
if(SNT(x)==1) return x;
ban có thể nói rõ hơn cái chỗ gọi hàm ko tại mình ms học C nên không rành lắm
Hàm SNT() trong ngoặc là truyền tham số vào, để nó kiểm tra.
Ở đây là x, thì truyền x vào.
SNT(x), mà x ở đây chính là n%10, nên bạn đặt x vô là ok.
Hàm này xuất nhiều giá trị thì bạn làm hàm void. Rồi in ra luôn, ko cần return nhe.
Trong vòng while
if(SNT(x)==1)
Printf(“%d”,x);
Coi lại hàm kt snt, dòng cuối return 1 thôi được rồi ko cần đếm.
Còn bạn viết kiểu đếm ước số bằng 2 thì phải so sánh dk rõ ràng ra.
Bạn dùng C thì bỏ dấu & thay bằng dấu * nhé
mình viết theo kiểu chương trình con bạn ơi. Nhưng bạn có thể nói rõ từng chỗ sai trong chương trình của mình không tại mình khá dốt trong môn này. Chương trình của mình đây
hàm nhập phải đưa int*n vào thay vì int &n
hàm snt nên dùng kiểu dữ liệu bool và bỏ biến dem đi
ở hàm xet thì t là biến đếm, nếu SNT(x) true thì t++
bạn ơi giải thích cho mình cái khúc int*n đi tại sao ko p int&n và *n nghĩa là gì
int &n
: reference, C không có khái niệm này.*n
: khái niệm con trỏ.