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

Đề tài: [sửa code]struct_phân số

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

    Post [sửa code]struct_phân số

    các bác giúp em sửa cái code này vơi!
    Code:
    #include"stdio.h"
    #include"conio.h"
    #include"math.h"
    
    struct phanso(int a,int b)
    	{
    	int tu;
    	int mau;
    	}
    //ham tinh tong 2 phan so
    phanso tong(phanso a,phanso b)
    	{
    	while(a.mau!=0&&b.mau!=0)
    	phanso c;
    	c.tu=a.tu*b.mau+a.mau*b.tu;
    	c.mau=a.mau*b.mau	  ;
    	return (phanso c);
    	}
    //ham tinh hieu hai pha so
    phanso hieu(phanso a,phanso b)
    	{
    	while(a.mau!=0&&b.mau!=0)
    	phanso c;
    	c.tu=a.tu*b.mau-b.tu*a.mau;
    	c.mau=a.mau*b.mau;
    	return (phanso c);
    	}
    //ham tinh tich 2 phan so
    phanso tich(phanso a,phanso b)
    	{
    	phanso c;
    	while (a.mau!=0&&b.mau!=0);
    	c.tu=a.tu*b.tu;
    	c.mau=a.mau*b.mau;
    	return (phanso c);
    	}
    //ham tinh tthuong 2 phan so
    phanso thuong(phanso a,phanso b)
    	{
    	phanso c;
    	if (b.tu==0)
    	printf("\n khong the thuc hien duoic phep chia");
    	else
    	c.tu=a.tu*b.mau;
    	c.mau=a.mau*b.tu;
    	return(phanso c);
    	}
    //phan so toi gian
    phanso toigian(phanso a)
    	{
    	phanso c=a;
    	while (a.tu!=a.mau)
    		{
    		if (a.tu > a.mau)
    			{
    			a.tu=a.tu-a.mau;
    			}
    		else
    				{
    				a.mau=a.mau-a.tu;
    				}
    		}
    	c.tu=c.tu/a.tu;
    	c.mau=c.mau/a.tu;
    	return(c);
    	}
    //ham chinh
    void main()
    {
    	phanso a,b,c;
    	printf("\n nhap phan so a:") ;
    	scanf("%d / %d",a.tu,a.mau)  ;
    	printf(" \n nhap phan so b:");
    	scantf("%d / %d",b.tu,b.mau) ;
    	printf(" \n nhap phan so c:");
    	scanf ("%d / %d",c.tu,c.mau) ;
    }

  2. #2
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Có vài điều lưu ý:
    1) Tại sao mấy cái hàm phân số lại dùng while mà không dùng if, dùng if sẽ hay hơn, tránh bị lỗi.

    2)Hàm main() chính của bạn : scanf("%d / %d",a.tu,a.mau);
    - Tại sao lại có dấu gạch chéo "/" ????
    - Thiếu &a.tu, &a.mau.

    Thử fix lại xem có chạy tốt hơn không nhé!

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

    thanks!
    đáng ra là tôi dùng if đấy nhưng dùng thử while xem sao?tại no báo lỗi ngay dòng đầu tiên tại cái "struct phanso(int a,int b)"
    -error:declaration terminate incorectly
    - dấu gạch chéo để biểu thị phân số mừ ^^
    -tui đang test lại xin cảm ơn

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

    bài này được viết bằng turbo C nên có thể làm trên borlanC hay C-4free ...có thể báo lỗi khác nhau hoặc warning khác

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

    bài trên mới làm demo,sau một thời gian nghiên cứu và tham khảo,chương trình đã chạy và có 1 lỗi nhỏ 1 tẹo,mong các bạn tìm hộ(chắc chỉ với Turbo C thôi)
    Code:
    #include <stdio.h>
    #include <conio.h>
    
    struct phanso
    	{
    		int tu;
    		int mau;
    	} ;
    
    phanso tong(phanso a, phanso b)
    	{
    		phanso c;
    		c.tu = a.tu*b.mau + a.mau*b.tu;
    		c.mau = a.mau*b.mau;
    		return(c);
    	}
    
    phanso thuong(phanso a, phanso b)
    	{
    
    		phanso c;
    		c.tu= a.tu*b.mau;
    		c.mau= a.mau*b.tu;
    		return(c);
    
    	}
    
    phanso tich(phanso a,phanso b)
    	{
    		phanso c;
    		c.tu = a.tu*b.tu;
    		c.mau= a.mau*b.mau;
    		return(c);
    	}
    
    phanso hieu(phanso  a,phanso b)
    	{
    		phanso c;
    		c.tu = a.tu*b.mau - a.mau*b.tu;
    		c.mau = a.mau*b.mau;
    		return(c);
    	}
    phanso toigian(phanso a)
    	{
    		if(a.tu==0)
    			{
    			return(a);
    			}
    		else
    			{
    				phanso c=a;
    				while (a.tu!= a.mau)
    					{
    						if (a.mau>a.tu)
    							a.mau=a.mau-a.tu;
    						else
    							a.tu=a.tu-a.mau;
    					}
    				c.tu= c.tu/a.mau;
    				c.mau=c.mau/a.mau;
    				return(c);
    			}
    	}
    void main()
    	{
    		phanso a,b,c;
    		printf("Nhap phan so a: ");
    		scanf("%d/%d",&a.tu,&a.mau);
    		printf("Nhap phan so b: ");
    		scanf("%d/%d",&b.tu,&b.mau);
    		c=tong(a,b);
    		c=toigian(c);
    		printf("\nTong hai phan so: %d/%d ",c.tu,c.mau);
    
    		c=hieu(a,b);
    		c=toigian(c);
    		printf("\nHieu hai phan so: %d/%d ",c.tu,c.mau);
    
    		c=tich(a,b);
    		c=toigian(c);
    		printf("\nTich hai phan so: %d/%d ",c.tu,c.mau);
    
    		if (b.tu==0)
    			{
    				printf("\nkhong thuc hien duoc phep chia");
    			}
    		else
    			{
    				c=thuong(a,b);
    				c=toigian(c);
    				printf("\nThuong hai phan so : %d/%d ",c.tu,c.mau);
    			}
    	}

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

    Mặc định [sửa code]struct_phân số

    Bạn bỏ dấu "/" ở 2 chỗ này:
    scanf("%d%d",&a.tu,&a.mau);
    scanf("%d%d",&b.tu,&b.mau);

  7. #7
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Trích dẫn Nguyên bản được gửi bởi thanh_rio Xem bài viết
    thanks!
    đáng ra là tôi dùng if đấy nhưng dùng thử while xem sao?tại no báo lỗi ngay dòng đầu tiên tại cái "struct phanso(int a,int b)"
    -error:declaration terminate incorectly
    - dấu gạch chéo để biểu thị phân số mừ ^^
    -tui đang test lại xin cảm ơn
    Hàm scanf() chứ có phải là hàm printf() đâu mà bạn lại cho "/" vào ???????

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

    uh` nhỉ ,nhầm nhọt một tẹo chỗ này ,lâu rồi mới học lại C nên ngôn ngữ hơi bị lộn xộn tẹo mong các bạn thông cảm!

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

  1. Chuyển code sang code ngắn hơn trong LINQ
    Gửi bởi tinhthanhiepsi9x trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 14-04-2012, 11:19 AM
  2. compiler Warning: Unreachable code và chạy sai trong khi code đúng. Vì sao?
    Gửi bởi lovemoney trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 19
    Bài viết cuối: 19-01-2012, 10:02 PM
  3. Bài tập C++ Nhập code và name sv vào in ra thì name in đúng nhưng code thì in ra cả 2 code lẫn name
    Gửi bởi spacy0212 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: 27-09-2011, 08:47 AM
  4. code tìm cây có trọng lượng nhỏ nhất bằng giải thuật prim-cách chạy tay code này
    Gửi bởi ruacon_206 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 25-04-2011, 02:27 PM
  5. Code quản lý sinh viên bằng danh sách lối vòng. Giúp mình thay đổi code kế thừa?
    Gửi bởi caocanha trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 6
    Bài viết cuối: 04-05-2009, 03:39 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