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

Đề tài: Cho e hỏi về vấn đề Cấu trúc dữ liệu trong C [GẤP]

  1. #1
    Ngày gia nhập
    11 2014
    Nơi ở
    Ho Chi Minh City, Vietnam, Vietnam
    Bài viết
    1

    Mặc định Cho e hỏi về vấn đề Cấu trúc dữ liệu trong C [GẤP]

    Hiện e dang có bt về cấu trúc làm về phân số:
    code làm bài của e là thế này. Mà lúc chạy thì nó lỗi q,p chưa initialized. Có ai bik cách sửa lại giúp ạ. Gấp
    Code:
    #include <stdio.h>
    struct Phanso
    {
    	int ituso;
    	int imauso;
    };
    void nhapxuat(Phanso p, Phanso q)
    {
    	printf("Nhap vao tu so phan so thu I:\n ");
    	scanf("%d",p.ituso);
    	printf("Nhap vao mau so phan so thu I: \n");
    	scanf("%d",p.imauso);
    	printf("Nhap vao tu so phan so thu II:\n");
    	scanf("%d",q.ituso);
    	printf("Nhap vao mau so phan so thu II :\n");
    	scanf("%d",q.imauso);
    	printf("Phan so thu I la : %d/%d\n",p.ituso,p.imauso);
    	printf("Phan so thu II la : %d/%d\n",q.ituso,q.imauso);
    
    }
    void main()
    {
    	
    	Phanso p; Phanso q; 
    	nhapxuat(p,q);
    }

  2. #2
    Ngày gia nhập
    10 2014
    Bài viết
    13

    truyền tham biến em nhé :

    Code:
    void nhapxuat(Phanso &p, Phanso &q)
    {
    	printf("Nhap vao tu so phan so thu I:\n ");
    	scanf("%d",&p.ituso);
    	printf("Nhap vao mau so phan so thu I: \n");
    	scanf("%d",&p.imauso);
    	printf("Nhap vao tu so phan so thu II:\n");
    	scanf("%d",&q.ituso);
    	printf("Nhap vao mau so phan so thu II :\n");
    	scanf("%d",&q.imauso);
    	printf("Phan so thu I la : %d/%d\n",p.ituso,p.imauso);
    	printf("Phan so thu II la : %d/%d\n",q.ituso,q.imauso);
    Học lập trình bắt đầu từ đâu ?

    www.laptrinhCcanban.com

  3. #3
    Ngày gia nhập
    11 2014
    Nơi ở
    Ho Chi Minh City, Vietnam, Vietnam
    Bài viết
    1

    Thanks !!
    với e viết thêm một hàm tính toán nữa thì vẫn phải truyền tham trị tiếp phải ko ạ.
    Code e viết dưới đây, mong sửa lỗi giùm

    Code:
    void tinh(Phanso &p, Phanso &q)
    {
    	char pheptinh;
    	double mauso, tuso;
    	printf("Nhap vao phep tinh ma ban muon thuc hien(+,-,*,/) :\n");
    	scanf("%c",&pheptinh);
    	switch(pheptinh)
    		case "+" :
    			mauso=q.imauso*p.imauso;
    			tuso=q.ituso*p.imauso+q.imauso*p.ituso;
    			printf("Ket qua : %d/%d \n",tuso,mauso);
    			break;
    		case "-":
    			mauso=q.imauso*p.imauso;
    			tuso=q.ituso*p.imauso-q.imauso*p.ituso;
    			printf("Ket qua : %d/%d \n",tuso,mauso);
    			break;
    		case "*":
    			mauso=q.imauso*p.imauso;
    			tuso=q.ituso*p.ituso;
    			printf("Ket qua : %d/%d \n",tuso,mauso);
    			break;
    		case "/":
    			tuso=q.imauso*p.ituso;
    			mauso=p.imauso*q.ituso;
    			printf("Ket qua : %d/%d \n",tuso,mauso);
    			break;
    }

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

    Được em !
    Code:
    void tinh(Phanso p, Phanso q)
    {
    	char pheptinh;
    	double mauso, tuso;
    	printf("Nhap vao phep tinh ma ban muon thuc hien(+,-,*,/) :\n");
    	//scanf("%c",&pheptinh);
    	fflush(stdin);
    	pheptinh = getchar();
    	switch(pheptinh)
    	{
    		case '+':
    			mauso=q.imauso*p.imauso;
    			tuso=q.ituso*p.imauso+q.imauso*p.ituso;
    			printf("Ket qua : %d/%d \n",tuso,mauso);
    			break;
    
    		case '-':
    			mauso=q.imauso*p.imauso;
    			tuso=q.ituso*p.imauso-q.imauso*p.ituso;
    			printf("Ket qua : %d/%d \n",tuso,mauso);
    			break;
    		case '*':
    			mauso=q.imauso*p.imauso;
    			tuso=q.ituso*p.ituso;
    			printf("Ket qua : %d/%d \n",tuso,mauso);
    			break;
    		case '/':
    			tuso=q.imauso*p.ituso;
    			mauso=p.imauso*q.ituso;
    			printf("Ket qua : %d/%d \n",tuso,mauso);
    			break;
    	}
    }
    góp ý codes :
    - Phanso tinh(Phanso p, Phanso q) : vì nên dùng kiểu phân số nên kết quả tính phải trả về kiểu phân số.
    Em tự sửa lại nhé
    Học lập trình bắt đầu từ đâu ?

    www.laptrinhCcanban.com

  5. #5
    Ngày gia nhập
    11 2014
    Nơi ở
    Ho Chi Minh City, Vietnam, Vietnam
    Bài viết
    1

    Cảm ơn ạ. Còn cái hàm cuối rút gọn phân số e viết thế này ạ, có lấy giá trị return từ hàm tinh ở dưới lun ạ. Nhưng bị lỗi, a xem giúp e với ạ,

    Đây là toàn bộ code của e ạ !
    Code:
    #include <stdio.h>
    struct Phanso
    {
    	int ituso;
    	int imauso;
    };
    void nhapxuat(Phanso &p, Phanso &q)
    {
    	printf("Nhap vao tu so phan so thu I:\n ");
    	scanf("%d",&p.ituso);
    	printf("Nhap vao mau so phan so thu I: \n");
    	scanf("%d",&p.imauso);
    	printf("Nhap vao tu so phan so thu II:\n");
    	scanf("%d",&q.ituso);
    	printf("Nhap vao mau so phan so thu II :\n");
    	scanf("%d",&q.imauso);
    	printf("Phan so thu I la : %d/%d\n",p.ituso,p.imauso);
    	printf("Phan so thu II la : %d/%d\n",q.ituso,q.imauso);
    }
    int tinh(Phanso &p, Phanso &q)
    {
    	char pheptinh;
    	int  tuso,mauso;
    	mauso=q.imauso*p.imauso;
    	printf("Nhap vao phep tinh ma ban muon thuc hien(+,-,*,/) :\n");
    	scanf(" %c", &pheptinh);
    	switch(pheptinh)
    	{
    		case'+':
    		
    		tuso=q.ituso*p.imauso+q.imauso*p.ituso;
    		printf("Ket qua + : %d/%d \n",tuso,mauso);
    		break;
    		case'-':
    		
    		tuso=q.ituso*p.imauso-q.imauso*p.ituso;
    		printf("Ket qua - : %d/%d \n",tuso,mauso);
    		break;
    		case'*':
    		
    		tuso=q.ituso*p.ituso;
    		printf("Ket qua * : %d/%d \n",tuso,mauso);
    		break;
    		case'/':
    		tuso=q.imauso*p.ituso;
    		
    		printf("Ket qua / : %d/%d \n",tuso,p.imauso*q.ituso);
    		break;
    	}
    	return tuso;
    }
    void rutgon(Phanso &p, Phanso &q)
    {
    	
    	int a,b,mauso;
    	mauso=q.imauso*p.imauso;
    	a=tinh(p,q);
    	b=mauso;
    	while(a!=b)
    	{
    		if(a>b)
    			a=a-b;
    		else
    			a=b-a;
    	}
    	printf("Phan so khi da rut gon: %d/%d ",a);
    	
    }
    int sosanh( Phanso &q, Phanso &p)
    {
    	int a,b;
    	a=q.ituso*p.imauso-q.imauso*p.ituso;
    	if(a>0)
    		return 1;
    	else if(a<0)
    		return -1;	
    	else
    		return 0;
    }
    void main()
    {
    	int tuso, mauso;
    	Phanso p; Phanso q; 
    	nhapxuat(p,q);
    	tinh(p,q);
    	rutgon(p,q);
    	sosanh(q,p);
    }

  6. #6
    Ngày gia nhập
    05 2013
    Nơi ở
    TPHCM
    Bài viết
    2

    Mặc định Cho e hỏi về vấn đề Cấu trúc dữ liệu trong C [GẤP]

    Mình có chút nhận xét.
    1> Bạn muốn rút gọn phân số nào. Những phân số vừa nhập hay là kết quả sau phép nhân.
    2> Hàm "sosanh" trong bài là hàm kiểu int, là hàm trả về giá trị đúng sai, bạn gọi hàm trong hàm main() thì không thể xuất ra kq được. Nếu bạn muốn xuất ra kq thì có thể gọi if(sosanh(q,p)==1){....Đúng...Lệnh tiếp theo....
    }
    else{ ..Sai...Lệnh tiếp theo...
    }

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