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

Đề tài: ko biết sửa lỗi multiple declaration

  1. #1
    Ngày gia nhập
    12 2008
    Bài viết
    4

    Mặc định ko biết sửa lỗi multiple declaration

    Đây là 1 bài trong sách của thầy Ất trang 225 tớ cho chạy thử nhưng nó báo lỗi là multiple declaration for "person" tớ sửa lại là struct person nhưng thế thì đến chỗ hàm sẽ bị báo lỗi khai báo sai. Không biết sửa thế nào?Mong các pro giúp đỡ.

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<string.h>
    4. struct date
    5.    {
    6.       int ngay,thang,nam;
    7.       };
    8. struct
    9.    {
    10.      char ht[25];
    11.      struct date ns;
    12.      float bl;
    13.      }person;
    14.  //person *ptim(char *ht,person h[],int n);
    15. //person tim(char *ht,person h[],int n);
    16. //void hv(person *p1,person *p2);
    17. //void sapxep(person *p,int n);
    18. //void vao(person *p);
    19. //void in(person p);
    20.  person tim(char *ht, person h[],int n);
    21. {
    22.   int i;  person ps;
    23.   ps.ns.ngay = ps.ns.thang=ps.ns.nam =0; ps.bl=0.0;
    24.   ps.ht[0]=0;
    25.   for(i=1;i<=n;++i)
    26.     if(strcmp(ht,h[i].ht)==0) return(h[i]);
    27.     return(ps);
    28.     }
    29. person *ptim(char *ht,person h[],int n);
    30. {
    31.   int i;
    32.   for(i=1;i<=n;++i)
    33.     if (strcmp(ht,h[i].ht)==0)return(&h[i]);
    34.     return(null);
    35.     }
    36. void hv(person *p1,person *p2)
    37. {
    38.  person h;
    39.  h=*p1;  *p1=*p2;   *p2=h;
    40.  }
    41. void vao(person *p);
    42. {
    43.   person h; float bl;
    44.   printf("\nHoten");gets(h.ht);
    45.   printf("\nNgay thang nam sinh: ");
    46.   scanf("%d%d%d%*c",&h.ns.ngay,&h.ns.thang,&h.ns.nam);
    47.   printf("\nBac luong: ");
    48.   scanf("%f%*c",&bl);h.bl=bl;
    49.   *p=h;
    50.   }
    51. void in(person p)
    52. {
    53. printf("\nHo ten %s sinh ngay %d thang &d nam %d \ Bac luong %0.1f",p.ht,p.ns.ngay,p.ns.thang,p.ns.nam,p.bl);
    54. }
    55. void sapxep (person *p,int n)
    56. {
    57.  int i,j;
    58.  for(i=1;i<=n-1;++i)
    59.   for(i=i+1;i<=n;++i)
    60.     if(p[i].ns.nam>p[j].ns.nam)hv(&p[i],&p[j]);
    61. }
    62. main()
    63. {
    64.  person *p,ds[100];
    65.  int n,i,j;
    66.  char ht[40];
    67.  clrscr();
    68.  printf("\nSo nguoi n= ");scanf("%d%*c",&n);
    69.  for(i=1;i<=n;++i)
    70.  vao(&ds[i]);
    71.  sapxep(ds,n);
    72.  for(i=1;i<=n;++i)in(ds[i]);
    73.  while(1)
    74.  {
    75.  print("\nHo ten nguoi can tim\(bam enter de ket thuc): ");
    76.  gets(ht);
    77.  if(ht[0]==0)break;
    78.  if(p=ptim(ht,ds,n)==null)
    79.   printf("\nKhong tim thay");
    80.   else in(*p);
    81.   }
    82.  while(1)
    83.  {
    84.    printf("\nHo ten nguoi can tim\(bam enter de ket thuc) ");
    85.    gets(ht);
    86.    if(ht[0]==0)break;
    87.    if(tim(ht,ds,n).ht[0]==0)
    88.      printf("\nKhong tim thay");
    89.      else in(tim(ht,ds,n);
    90.      }
    91.      }

    *Vui lòng đưa code vào tag code khi post bài.
    Đã được chỉnh sửa lần cuối bởi QuangHoang : 01-01-2009 lúc 12:56 PM.

  2. #2
    Ngày gia nhập
    04 2008
    Bài viết
    336

    cậu gõ lại code bị sai thêm nhiều chỗ .....

    code trong sách của PVA sử dụng compiler cũ, cậu sửa lại như thế này xem
    C Code:
    1. typedef struct _p
    2. {
    3. //.... đoạn struct person
    4. } person;
    code ra gió bão

  3. #3
    Ngày gia nhập
    12 2008
    Bài viết
    4

    cam on ban nhe.Ban oi trong lệnh scanf thầy cho %*c để làm gì đó bạn vì mình thấy ko cần %*c nó vẫn chạy tốt mà?

  4. #4
    Ngày gia nhập
    04 2008
    Bài viết
    336

    cái đó đại khái là để ko bị "trôi" các phương thức xử lý chuỗi dùng ký tự xuống dòng để kết thúc.
    Để hiểu rõ bạn hãy so sánh với code này, chú ý đến kết qua được in ra màn hình.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.     int a;
    6.     char s[10];
    7.     scanf("%d%*c",&a);
    8.     gets(s);
    9.     printf("%d,%s\n",a,s);
    10.     getch();
    11.     return 0;
    12. }
    code ra gió bão

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

  1. Lập trình C++0x [global declaration] cách khai báo và sử dụng biến global?
    Gửi bởi quano1 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 17-08-2013, 05:30 PM
  2. Trả lời: 1
    Bài viết cuối: 12-05-2011, 10:35 PM
  3. [C++]Hỏi về lỗi "multiple declaration for 'time' "
    Gửi bởi trinhkhoi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 10-05-2010, 07:57 AM
  4. Multiple template như thế nào ?
    Gửi bởi iamme22021990 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 09-10-2009, 08:41 PM
  5. Vài vấn đề cần hỏi về MDI (Multiple Document Interface)
    Gửi bởi mrhotsnow trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 13-12-2007, 08:01 PM

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