Chủ đề: Lỗi bài toán "In số nguyên tố"
-
10-04-2011, 09:08 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
hihi sorry . ban đầu làm break sau đổi thành return mà quên xóa. làm luôn. em sửa code lại rồi bác
[IMG]images/smilies/kiss.gif[/IMG]View more random threads:
- Tra bảng vecto ngắt ở đâu??
- toán tử >>= là sao vậy mấy bạn ?
- chỉ em cách thao tác với file trong c với
- thắc mắt về con trỏ trong ma trận
- Mấy anh xem giúp em bài này với ạ.
- Hiển thị mảng không như mong muốn C++
- lập trình game ghép tranh
- [Solved]kiểm tra dùm đoạn code
- Cách khắc phục lỗi
- Mọi người giúp em bài này với
-
10-04-2011, 10:02 AM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
[QUOTE=xuyenit55;225379]
Mã:int nt ( int n ){ if ( n < 2 ) return 0; for ( int i = 2 ; i <=sqrt(n) ; i++){ if ( n % i==0 ) return 0;}return 1;} void snt(int n){ cout<<"Day cac so nguyen to: "; for(int i=2;i<=n;i++) { if(nt(i)) cout<<" "<<a[i]; } cout<<" ";}
Thêm cái #include<math.h> nữa là ổn. nhưng mà sao mình nhập 1,5,8,9 thì nó kêu 8,9 cũng là số nguyên tố ???
Bạn cho mình hỏi thêm nữa là return 0, return 1, break nghĩa là gì vậy? Thây nói nó có nghĩa là quay lại gì gì đó nhưng minh không hiểu lắm
-
10-04-2011, 10:08 AM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
[QUOTE=hongle516;225460]
Gửi bởi xuyenit55Mã:bool kiemtra(unsigned n){ int i; if((n==2)||(n==3)) return true; for(i=2; i<=sqrt(n); i++){ if(n%i==0) return false; } return true;}
mà trong c ko có kiểu bool. nên 0 tương ứng với false
còn 1 tương ứng với true.mà khi có return rùi thì ko có break nữa
vì nó đã trả về giá trị của hàm và kết thúc hàm
-
10-04-2011, 10:11 AM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi beautifulsoul84hung
Mà đã học xong phần lý thuyết rồi tuần sau là nhảy sang thực hành à.
Và trong bài này
Mã:int n;int giaithua(int m){ if(m==1) return 1; else return m*giaithua(m-1);}
return to quá
-
10-04-2011, 10:23 AM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi hongle516
chứ ko có ở đâu thầy cô dạy chi tiết đâu bạn ah. mấy thứ mình làm chỉ đơn thuần
chứ ko có cao siêu j đâu^^!~. để mình chú thích cho bài của bạn xuyenit giúp bạn
Mã:int nt ( int n )// n o day chi la tham so hinh thuc. ban co the thay la a b c.... // mien la trong ham ban phai su dung no{ if ( n < 2 ) return 0;// return 0 co nghia la nt(n)=0 neu nhu n<2 // minh hieu voi nhau la no la so nguyen to // ban hoan toan co the thay la 1 hoac..... for ( int i = 2 ; i <=sqrt(n) ; i++){ if ( n % i==0 ) return 0;}return 1;// tuong tu thi day dc hieu gia tri cua ham tra ve la 1 //=> khong phai la so nguyen to} void snt(int n){ cout<<"Day cac so nguyen to: "; for(int i=2;i<=n;i++) { if(nt(i)) // goi ham. // if(nt(i)!=0) thi no la so nguyen to // vi mac dinh o tren 0 la so nguyen to cout<<" "<<a[i]; } cout<<" ";}
Mã:int n;int giaithua(int m){ if(m==1)// nếu mà m=1 thì giai thừa = chính nó return 1;// đây là giá trị trả về của hàm và =1; else return m*giaithua(m-1);// nếu không thì m!= m*(giaithua(m-1)); // nó kiểm tra m-1 có bằng 1 hay ko // nếu ko thì lại làm tiếp m!=m*(m-1)*giaithua(m-2); // cứ như công thức tính giai thừa bt // giá trị trả về cuối cùng = m*(m-1)*...1;}
nói qua thì đây là hàm gọi lại chính nó.
những bài nào không làm đc theo cách thường thì nên làm theo cách này
vì cách này chỉ đẹp mắt nhưng độ chậm
-
10-04-2011, 10:33 AM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
beautifulsoul84hung cho mình hỏi thêm
sao mình làm như thế này rồi
nhập 1.3.4.6.7 vào thì số nguyên tố lại là 3.4.7 nhỉ?
Mã:#include<iostream.h>int n,a[100];void nhap(int &n){ cout<<" Nhap so phan tu:"; cin>>n; for(int i=1;i<=n;i++) { cout<<"a["<<i<<"]="; cin>>a[i]; } cout<<" ";}void hienthi(int n){ cout<<" Day vua nhap la:"; cout<<" "; for(int i=1;i<=n;i++) cout<<" "<<a[i]; cout<<" ";}int nt(int m){ if(m<2) return 0; for(int i=2;i<=m/2;i++) { if(m%i==0) return 0; } return 1;}void snt(int n){ cout<<"Day cac so nguyen to: "; for(int i=1;i<=n;i++) { if(nt(i)) cout<<" "<<a[i]; } cout<<" ";}main(){ nhap(n); cout<<" "; hienthi(n); cout<<" "; snt(n); cout<<" ";}
-
10-04-2011, 11:18 AM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
void snt(int n)
{
cout<<"Day cac so nguyen to:
";
for(int i=1;i<=n;i++)
{
if(nt(i))
cout<<" "<<a[i];
}
cout<<"
";
}
hic. tìm mãi ko ra....... thực chất là bạn sai ở phần trên[IMG]images/smilies/biggrin.png[/IMG]
Mã:if(nt(i))
-
10-04-2011, 11:29 AM #8Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
[QUOTE=hongle516;225460]
Gửi bởi xuyenit55
Mã:#include<iostream>#include<math.h>using namespace std;int kiemtra ( int n ){ if ( n <2 ) return 0; for ( int i = 2 ; i <= sqrt( n ) ; i++) { if ( n % i == 0) { return 0; } } return 1;}int main(){ int n , i; cout<<" nhap n = "; cin>>n; for ( i = 2 ; i < n ; i++) { if ( kiemtra ( i)) { cout<< i << " , " ; }}system ("pause");return 0;}
-
10-04-2011, 11:33 AM #9Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi beautifulsoul84hung
Sửa if(nt(i)) = if(nt(a[i])) là ok
-
10-04-2011, 06:26 PM #10Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Lỗi bài toán "In số nguyên tố"
Giúp tớ với. Nó báo 2 lỗi sai ở phần void snt à(dòng 25 và 40), tớ dùng C-Free 5
Thầy nói để 1 là số nguyên tố cũng đc nên tớ làm theo thầy
Đề bài:
Mã:Nhập vào máy dãy n số nguyêna)In dãyb)In số nguyên tố
Mã:#include<iostream.h>int n,a[100];void nhap(int &n){ cout<<" Nhap so phan tu:"; cin>>n; for(int i=1;i<=n;i++) { cout<<"a["<<i<<"]="; cin>>a[i]; } cout<<" ";}void hienthi(int n){ cout<<" Day vua nhap la:"; cout<<" "; for(int i=1;i<=n;i++) cout<<" "<<a[i]; cout<<" ";} void snt(int n){ int nt(int m) { //sai ở đây int kt=0; for(int i=1;i<=m/2;i++) { if(m%i==0) kt+=1; } if(kt>1) return 0; else return 1; } cout<<"Day cac so nguyen to: "; for(int i=1;i<=n;i++) { if(nt(i)) //sai ở đây cout<<" "<<a[i]; } cout<<" ";}main(){ nhap(n); cout<<" "; hienthi(n); cout<<" "; snt(n); cout<<" ";}
Dưới ánh nắng mặt trời đang lên, những đống pallet nhựa An Giang trải dài mênh mông như những bức tranh tự nhiên đầy sắc màu. Mỗi chiếc pallet nhựa không chỉ là một vật dụng thông thường mà còn là...
Pallet nhựa An Giang giao hàng...