Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: giúp em vấn đề nhỏ này

  1. #1
    Ngày gia nhập
    09 2012
    Bài viết
    1

    Mặc định giúp em vấn đề nhỏ này

    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    //ham nhap int
    int get(char * m)
    {
    	int a;
    	printf(m); scanf("%d",&a);
    	return a;
    }
    //ham phan tich ra thua so nguyen to 
    int ngt( int n)
    {	
    	int i=2;
    	
    	while(n!=1)
       {
    		if (n%i==0) 
    			{	
    				n=n/i;
    				printf("*");
    				printf("%d",i);
    
    			}
    		else i++;
    	}
    	return n;
    }
     main()
    {
    	//Phan tich ra so nguyen to
    	int nt;
    	nt=get("nhap n=");
    	printf ("n=1");
    	printf("%d",ngt(nt));
    	getch();
    }
    em làm bt phân tích ra thừa số nguyên tố. Chương trình này của em chạy được nhưng sao nó cứ thừa số 1 ở sau cùng. VD: thay vì 100=1*2*2*5*5 thì nó lại ghi 100=1*2*2*5*51. hay 700=1*2*2*5*5*7 thì nó lại ghi là 700=1*2*2*5*5*71. Mong mấy anh chỉ dùm em chỗ sai

  2. #2
    Ngày gia nhập
    11 2012
    Bài viết
    136

    return n; ở hàm ngt bạn trả về n khiến nó thừa số 1 vì khi n=1 thì kết thúc vòng lặp . phân tích số nguyên tố là được sao cần giá trị trả về làm gì. nếu giờ bỏ cái dòng in ra i có lẽ nó chỉ có trả về 1 vì trong main bạn gọi thế này mà printf("%d",ngt(nt)); bạn tự sửa lại nhé.
    Đã được chỉnh sửa lần cuối bởi kimcy1992 : 21-11-2012 lúc 07:26 PM.
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

  3. #3
    Ngày gia nhập
    09 2012
    Bài viết
    1

    Trích dẫn Nguyên bản được gửi bởi kimcy1992 Xem bài viết
    return n; ở hàm get bạn trả về n khiến nó thừa số 1 vì khi n=1 thì kết thúc vòng lặp . Bài của bạn có vần đề này.nt=get("nhap n="); chỉ nhận giá trị trong miền giá trị của kiểu char thôi à. nhập to hơn 127 thì có lẽ sai luôn. máy có vấn đề sau 1 2 giây hiện kết quả thì phải. đã khai báo số nguyên lại dùng kiểu nhập kí tự để gán không hiểu bạn định làm gì nữa, còn nữa phân tích số nguyên tố là được sao cần giá trị trả về làm gì. nếu giờ bỏ cái dòng in ra i có lẽ nó chỉ có trả về 1 vì trong main bạn gọi thế này mà printf("%d",ngt(nt)); bạn tự sửa lại nhé.
    em mới học C nên còn gà lắm. Vì ông thầy ổng bắt tất cả phải làm ra hàm ko được làm trong void main() . Anh giải thích rõ hơn dùm em tí được không ạ, em không hiểu lắm, mình muốn nó ko thừa số 1 cụ thể mình phải sửa lại gì ạ, thực sự thì em mò đi mò lại rồi nhưng vẫn không được.

  4. #4
    Ngày gia nhập
    11 2012
    Bài viết
    136

    Thật sự xin lỗi bạn chiều vừa phải bế chảu vừa nhìn lúc nãy mình nhìn nhầm một chút nên không để ý hàm get() của bạn.Rất xin lỗi nhưng vẫn có lỗi sai bài này như bạn nói. Vẫn là bài đó mình chỉ sửa một chút mà thôi bạn xem thế nào nhé.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<math.h>
    4. //ham nhap int
    5. int get(char * m)
    6. {
    7.     int a;
    8.     printf(m); scanf("%d",&a);
    9.     return a;
    10. }
    11. //ham phan tich ra thua so nguyen to
    12. void ngt( int n)//thay doi o day
    13. {  
    14.     int i=2;   
    15.     while(n!=1)
    16.    {
    17.         if (n%i==0)
    18.             {  
    19.                 n=n/i;
    20.                 printf("*");
    21.                 printf("%d",i);
    22.                
    23.  
    24.             }
    25.          else
    26.              i++;
    27.     }
    28.     return;
    29. }
    30.  int main()
    31. {
    32.     //Phan tich ra so nguyen to
    33.     int nt;
    34.     nt=get("nhap n=");
    35.     printf ("n=1");
    36.     ngt(nt);//thay doi o day
    37.     getch();
    38. }
    Rất xin lỗi.
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

  5. #5
    Ngày gia nhập
    09 2012
    Bài viết
    1

    vâng cảm ơn bạn nhiều. Lỗi gì đâu bạn ơi, mình còn nhờ vả nhiều, cảm ơn nhiều nhiều nhé

  6. #6
    Ngày gia nhập
    04 2012
    Bài viết
    42

    Mặc định giúp em vấn đề nhỏ này

    C Code:
    1. void analyze_Prime_Factor(int n)
    2. {
    3.     while(!(n%2))
    4.     {
    5.         printf("2*");
    6.         n=n/2;
    7.     }
    8.  
    9.     int i;
    10.     for(i=3;i*i<=n; i=i+2)
    11.     {
    12.         while(!(n%i))
    13.         {
    14.             printf("%d*",i);
    15.             n = n/i;
    16.         }
    17.     }
    18.  
    19.     if(n>1)
    20.         printf("%d",n);
    21.     else
    22.         printf("\b");
    23. }
    C Code:
    1. while (!silly)
    2.     cout<<"Study everything !";

  7. #7
    Ngày gia nhập
    10 2012
    Bài viết
    3

    các a cho e hỏi sao mình phải khai báo void "analyze_Prime_Factor" dài dòng như vậy để làm gì ah?

    phụ thêm code.
    Code:
    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    void xuly(int n)
    {
    	int i=2;
    	while(n>0)
    	{
    		if(n%i==0)
    		{
    			n/=i;
    			cout<<"*";
    			cout<<i;
    		}
    	else
    		i++;
    	}
    }
     void main()
     {
    	 int n,i;
    	 cout<<"nhap n:";
    	 cin>>n;
    	 cout<<n<<"=1";
    	 xuly(n);
     }

  8. #8
    Ngày gia nhập
    08 2012
    Bài viết
    71

    Trích dẫn Nguyên bản được gửi bởi hearttt2911 Xem bài viết
    các a cho e hỏi sao mình phải khai báo void "analyze_Prime_Factor" dài dòng như vậy để làm gì ah?
    Nếu trong phạm vi viết code cá nhân thì việc bạn khai báo thế nào cũng dc, miễn sao bạn dễ hiểu và dễ nhớ mỗi khi cần xem lại.
    Có người khai báo đầy đủ bằng tiếng Việt - có người khai báo đầy đủ bằng tiếng Anh .... như mình thì thấy tên nào ngắn nhất và nằm trong khả năng ngôn ngữ thì mình dùng <<< chỉ có thế thôi.
    Trước khi là PRO thì chắc chắn sẽ là CON GÀ
    Và mình thì đang ở mức độ CON GÀ

  9. #9
    Ngày gia nhập
    04 2012
    Bài viết
    42

    các a cho e hỏi sao mình phải khai báo void "analyze_Prime_Factor" dài dòng như vậy để làm gì ah?
    C Code:
    1. void xuly(int n)
    xử lý là xử lý cái gì ???
    Khi bạn viết một hàm thì lúc đọc vào phải biết nó làm cái gì
    C Code:
    1. while (!silly)
    2.     cout<<"Study everything !";

Các đề tài tương tự

  1. Sự cố Nhờ mod chuyển giúp bài "Sắp xếp số thứ tự ngay trong bảng của 1 database?" từ MySQL sang MSSQL giúp!
    Gửi bởi hu-xeko trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 1
    Bài viết cuối: 12-03-2012, 07:48 PM
  2. Mới nhập môn khó quá , cần trợ giúp [Vấn đề của bạn cần muốn giúp là gì ?]
    Gửi bởi cuingo212 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 5
    Bài viết cuối: 22-10-2011, 08:43 AM
  3. Chương trình giúp một học sinh cấp 1 học phép nhân, xử lý hàm rand, giúp mình với?
    Gửi bởi chankx trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 12-05-2009, 08:52 PM
  4. Code giúp add một key vào registry, ai giúp em?
    Gửi bởi olavien trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 12-12-2007, 08:45 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn