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

Đề tài: trình biên dịch gcc & TurboC

  1. #1
    Ngày gia nhập
    12 2007
    Nơi ở
    Hanoi
    Bài viết
    3

    Mặc định trình biên dịch gcc & TurboC

    Tại sao 1 bài tập C mình dịch và chạy thành công trên gcc, nhưng khi dịch bài này trên TurboC thì mặc dù ko hề có lỗi nhưng ko thể chạy đc file .exe ở đầu ra?
    Phải chăng có sự khác nhau nào đấy giữa 2 trình biên dịch này, Ai biết có thể chỉ rõ cho mình đc ko, và phải sửa code của chương trình như thế nào để có thể chạy đc ở cả 2 trình biên dịch.
    Như bài sau đây là 1 ví dụ:
    Code:
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    typedef struct number {
    		int cso;
    		struct number *next;
    				} number;
    
    int pop(number **top);
    void push(number **top,int x);
    int notempty(number *top);
    
     int main()
     {
      number *num1=NULL,*num2=NULL,*sum=NULL;
      int i,j,k=0;  
      char *s;
      printf("please input the first number:\n");
    		 gets(s);
      for(i=0;i<strlen(s);i++)
    	  {
    	  j=s[i]-'0';
    	  push(&num1,j); //bo qua ktra ki tu ko hop le
    	 }
      printf("please input the second number:\n");
    		 gets(s);
      for(i=0;i<strlen(s);i++)
    	  {
    	  j=s[i]-'0';
    	  push(&num2,j); //bo qua ktra ki tu ko hop le
    	 }
    while(notempty(num1)&&notempty(num2))
    	 {
    	 i=pop(&num1)+pop(&num2)+k;push(&sum,i%10);//pop tu moi stack ra 1 so nguyen , roi cong voi nhau va push phan du khi chia cho 10 vao stack tong
    	 if(i<10) k=0;//bien k co tac dung luu nho khi i>10
    	 else k=1;
    	}
    while(notempty(num1))//khi stack 2 rong truoc
      {
    	 i=pop(&num1)+k;push(&sum,i%10);
    	 if(i<10) k=0;
    	 else k=1;
      }
    while(notempty(num2))//khi satck 1 rong truoc
      {
    	 i=pop(&num2)+k;push(&sum,i%10);
    	 if(i<10) k=0;
    	 else k=1;
      }
    if(k==1) push(&sum,k);
    printf("sum of two number were inputed is: \n");
    while(notempty(sum))
      {
    	 i=pop(&sum);printf("%d",i);
      }
    
    return 0;
     }
    
    void push(number **top,int x)
    {
      number *new_t =NULL;
      new_t=calloc(1,sizeof(number));//bo qua buoc ktra bo nho
      new_t->cso=x;
      new_t->next=*top;
      *top = new_t;
    }
    int pop(number **top)
    {
      number *ptr;
      int i;
      ptr=*top;
      i=(*top)->cso;*top=(*top)->next;free(ptr);
      return i;
    }
    int notempty(number *top)
    {
      if(top==NULL) return 0;
      else return 1;
    }
    Bài này đã đc post trong diễn đàn nhưng mình xin phép đc post lại cho mọi người dễ ktra điều mình hỏi ở trên.
    Lưu ý: gcc là 1 trình biên dịch C,C++ ở trên hệ điều hành Linux hoặc môi trường Linux trên Microsoft Window(Cygwin: http://cygwin.com/)

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Dr chạy thử thì phát hiện ra: ừ thì TC kiểm tra cẩn thận hơn một chút,

    Bạn sửa lại dòng:
    new_t=calloc(1,sizeof(number));
    thành
    new_t=(number*)calloc(1,sizeof(number));

    thì có thể chạy tốt được ở cả 2 trình biên dịch trên.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  3. #3
    Ngày gia nhập
    12 2007
    Nơi ở
    Hanoi
    Bài viết
    3

    Thực sự ko thấy 1 sự thay đổi nào cả
    Mình dùng TC3.0 thì chạy ngon lành ko cần sửa
    Nhưng khi dùng TC4.5 thì vẫn chẳng đc gì cả
    Admin xem lại hộ với nhé

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

  1. [bada] thư viện static lib do gcc biên dịch ra trong app được biên dịch g++
    Gửi bởi Iphone4 trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 2
    Bài viết cuối: 10-08-2011, 04:53 PM
  2. Chạy đồ họa TurboC++ trên Dosbox?
    Gửi bởi gacongnghiep_cs trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 03-06-2011, 05:10 PM
  3. Hướng dẫn sử dụng để lập trình C++ bằng Borland / TurboC++ trên Win Vista/7 :)
    Gửi bởi cobedangyeuhtd trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 12-03-2011, 09:42 PM
  4. Bài tập C++ Đồ hoại trên TurboC | Vẽ sơ đồ bị lỗi declaration syntax error
    Gửi bởi monkey_2513 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 26-12-2010, 08:09 AM
  5. Lập trình C in ra từng ký tự của một xâu trong turboC
    Gửi bởi mrlamtb trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 29-10-2010, 08:21 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