Announcement

Collapse
No announcement yet.

Lỗi"fatal error LNK1169: one or more multiply defined symbols found"

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [C++] Lỗi"fatal error LNK1169: one or more multiply defined symbols found"

    PHP Code:
    #include "stdio.h"
    #include "conio.h"
    #include "stdafx.h"
    void main()
    {
        
    int n,dem,i,k,a;
        
    printf("\n nhap vao n.");
        
    scanf("%d",&n);
        for(
    k=1;k<=n;k++)
        if(
    n%k==0)dem++;
        if(
    dem<3)
        
    printf("\t n=%d .1" ,n);
        else if(
    dem>=3);
        {
            for(
    i=1;i<=n;i++)
            {
                
    a=n%i;
                
    printf("\t n=%d.%d",a,i);
            }
        }
        
    getch();


    Đề là: phân tích một số nguyên thành tích của các thừa số nguyên tố

  • #2
    về cú pháp, sửa lại ở chỗ khi khai báo biến dem thì gán cho nó giá trị ban đầu là 0. vậy là hết lỗi cú pháp nhé
    -----------------------------
    Mai Văn Khải
    Software Engineering, University Information of Technology
    a07d26eb5cbc98f77b36a461eb629456

    Comment


    • #3
      Vẫn không được anh ơi

      Comment


      • #4
        Originally posted by 11520572 View Post
        Vẫn không được anh ơi
        anh chạy trên visual đc mà, có điều hình như kết quả sai bét
        lỗi one or more multiply defined symbols found" theo anh hiểu là trình biên dịch tìm thấy 1 hoặc nhiều biến bị khai báo trùng (Khai báo nhiều lần). nhưng mà tìm mỏi mắt chả thấy biến nào bị vậy! mà visual cũng không báo lỗi đó!
        em dùng trình biên dịch gì? lỗi ở dòng nào?
        -----------------------------
        Mai Văn Khải
        Software Engineering, University Information of Technology
        a07d26eb5cbc98f77b36a461eb629456

        Comment


        • #5
          Code:
          #include "stdio.h" 
          #include "conio.h" 
          int songto(int k)
          {
              if(k==2) return 1;
              for(int i=2;i<k;i++)
                  if(k%i==0)
                      return 0;
              return 1;
          }
          int main() 
          { 
              int n; 
              printf("nhap vao n\n"); 
              scanf("%d",&n); 
              if(n<2 || songto(n)==1)
                     printf("% d ko phan tich duoc",n);
              else
                     {
                         
                         for(int i=2;i<n;i++)
                         while(n!=1 && songto(i)==1 && n%i==0)
                         {
                                 printf("%d\n",i);
                                 n/=i;
          
                      }
                  }
                                 
              getch(); 
          
          }
          Làm như thế này đúng hơn e ak
          Last edited by 10520566; 23-12-2011, 13:11. Reason: viết thừa

          Comment


          • #6
            Originally posted by 09520133 View Post
            anh chạy trên visual đc mà, có điều hình như kết quả sai bét
            lỗi one or more multiply defined symbols found" theo anh hiểu là trình biên dịch tìm thấy 1 hoặc nhiều biến bị khai báo trùng (Khai báo nhiều lần). nhưng mà tìm mỏi mắt chả thấy biến nào bị vậy! mà visual cũng không báo lỗi đó!
            em dùng trình biên dịch gì? lỗi ở dòng nào?
            Em dùng visual C++, nó báo lỗi như trên thôi không báo ở dòng nào cả.

            Comment


            • #7
              PHP Code:
              #include "stdio.h" 
              #include "conio.h" 
              int songto(int k)
              {
                  if(
              k==2) return 1;
                  for(
              int i=2;i<k;i++)
                      if(
              k%i==0)
                          return 
              0;
                  return 
              1;

              Anh giải thích cho em chỗ này đi.

              Comment


              • #8
                Originally posted by 11520572 View Post
                PHP Code:
                #include "stdio.h" 
                #include "conio.h" 
                int songto(int k)
                {
                    if(
                k==2) return 1;
                    for(
                int i=2;i<k;i++)
                        if(
                k%i==0)
                            return 
                0;
                    return 
                1;

                Anh giải thích cho em chỗ này đi.
                If số đó là 2 thì trả về 0 (tức là không phải số nguyên tố), trên đó ghi return 1 là sai đó (vì dựa theo cái return bên trong hàm for ý)
                chạy vòng lặp từ 2, sau mỗi bước lặp tăng giá trị lên 1 cho đến số k-1. Nếu sau mỗi bước lặp mà k chia hết cho 1 số nào đó thì không phải là số nguyên tố, vì số nguyên tố chỉ chia hết cho 1 và k (là chính nó). Ngược lại khi chạy hết vòng lặp rồi mà không return 0 thì tức là nó là số nguyên tố rồi, return 1.

                Comment


                • #9
                  Anh ơi, xem lại đi. Code trên đúng rồi mà. 2 là số nguyên tố chẵn duy nhất.
                  Bình tĩnh - Tự tin - Không cay cú
                  Âm thầm, lặng lẽ trả thù sau

                  Comment


                  • #10
                    PHP Code:
                    int songto(int k)
                    {
                        if(
                    k==2) return 1;
                        for(
                    int i=2;i<k;i++)
                            if(
                    k%i==0)
                                return 
                    0;
                        return 
                    1;

                    Thế k <= 1 thì return 1 à ?
                    Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                    Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                    Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                    Bùm, Maria Ozawa Bin Laden, chuyên gia cưa bom hàng đầu Việt Nam
                    ...

                    Comment


                    • #11
                      Thank mấy anh nha.

                      Comment


                      • #12
                        nếu k<=1 thì return 1 ,
                        nhưng mà kết hợp với if(n<2 || songto(n)==1) thì kết quả sẽ bị loại anh ak, dùng lệnh này thì bỏ được các trường hợp n là số âm thì cũng bị loại, với lại thừa chỗ khai báo mảng a[100] ko để làm j hết.....

                        Comment


                        • #13
                          Code:
                          bool Test_SNT(int n)
                          {
                          	if (n<=1 || n%2==0 && n!=2) return 0;
                          	if (n<4) return 1;
                          	for(int i=3;i<n;i+=2)
                          	{
                          		if (n%i==0)
                          			return 0;
                          	}
                          	return 1;
                          }
                          Thế này có đúng không bạn nhỉ!.

                          Comment

                          LHQC

                          Collapse
                          Working...
                          X