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

Đề tài: [ Solved ]Bài tập tính: a mũ 3 mũ n bị sai kết quả, giúp mình với

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

    Mặc định [ Solved ]Bài tập tính: a mũ 3 mũ n bị sai kết quả, giúp mình với

    Code:
    double Luythua(float a,int n)
    {
    	if(n)
    		return a*Luythua(a,n-1);
    	else return 1;
    }
    void Cau1d()
    {
    	clrscr();
    	int n;
    	float a;
    		printf("\nNhap gia tri cho a: "); scanf ("%f",&a);
    	do {
    			printf("\nNhap so mu n: "); scanf("%d",&n);
    		}while(n<0);
    	printf("\nKet qua= %.4lg",Luythua(a,Luythua(3,n)));
    getch();
    }
    Các bạn xem sao chứ mình làm thế này mà nó vẫn bị sai kết quả.
    Tính: a mũ 3 mũ n, ví dụ mình lấy a=2, n=2 thì đáng nhẽ ra nó phải ra là 64, vì 2 mũ 3 bằng 8 , sau đó 8 mũ 2 = 64, nhưng với cách làm trên thì nó lại ra là 512, bạn nào biết giúp mình với
    Đã được chỉnh sửa lần cuối bởi congtoan : 18-10-2008 lúc 01:59 AM.

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình đã sửa. Lần sau phiền bạn đem hết cả chương trình lên giùm. Đưa một đoạn code thế này test rất mệt, phải mất công gõ lại hàm main để test cho bạn nữa.

    C Code:
    1. double Luythua(double a,int n)
    2. {
    3.     if(n)
    4.         return (a * Luythua(a, n - 1));
    5.     else
    6.         return 1;
    7. }
    8.  
    9. void Cau1d()
    10. {
    11.     //clrscr();
    12.     int n;
    13.     double a;
    14.  
    15.     printf("\nNhap gia tri cho a: "); scanf ("%lf",&a);
    16.     do
    17.     {
    18.         printf("\nNhap so mu n: ");
    19.         scanf("%d",&n);
    20.     }
    21.     while ( n < 0);
    22.    
    23.     printf("\nKet qua= %.4lf",Luythua(a,n)); // sai chỗ này, gọi hàm sai cách
    24.     getch();
    25. }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    Bạn ơi, bạn chưa xem kỹ bài của mình rồi, bài của bạn chỉ tính a mũ n thôi, còn bài của mình là tính (a mũ 3 ) mũ n kia, bạn xem lại dùm mình với, mình đã post ví du ở trên kia rồi đó.
    Còn dưới đây là bài làm hoàn chỉnh nhưng mà vẫn đang bị sai phần mình hỏi bạn.
    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    #include <ctype.h>
    #include <stdlib.h>
    
    void Menu()
    {
    	printf("\n");
    	printf("\n_____________ MAIN MENU _____________");
    	printf("\n                                     ");
    	printf("\n          Xem cau 1a :  1            ");
    	printf("\n          Xem cau 1b :  2            ");
    	printf("\n          Xem cau 1b :  3            ");
    	printf("\n          Xem cau 1b :  4            ");
    	printf("\n          Xem cau 1b :  5            ");
    	printf("\n                Exit :  0            ");
    	printf("\n_____________________________________");
    	printf("\n\nMoi Ban Chon Lua: ");
    }
    /********************** Begin code Bai 1 ******************************/
    int Timkiem(int a[100],int VT,int n,int x)
     {
    	if(VT>=n) return -1;
    	if(a[VT]==x) return VT;
    	else return Timkiem(a,++VT,n,x);
     }
    
    void Cau1a()
    {
    	clrscr();
    	int i,n,a[100],x,VT=0;
    		printf("\nNhap so phan tu cua mang: ");
    		scanf("%d",&n);
    	for(i=0;i<n;i++)
    	{
    		printf("\na[%d]= ",i); scanf("%d",&a[i]);
    	}
    		printf("\nNhap phan tu can tim: "); scanf("%d",&x);
    		VT=Timkiem(a,0,n,x) ;
    		if(VT!=-1)
    			printf("\nTim thay %d tai vt %d",x,VT);
    		else printf("\nKhong tim thay!");
    		getch();
    }
    
    unsigned UCLN(unsigned a,unsigned b)
    {
    	if (a==0) return b;
    	else
    		return UCLN(b%a,a);
    }
    unsigned BSCNN(unsigned a, unsigned b)
    {
    	return a * b/UCLN(a,b);
    }
    void Cau1b()
    {
    	clrscr();
    	int a,b;
    	printf("\nNhap a: ");scanf("%u",&a);
    	printf("\nNhap b: ");scanf("%u",&b);
    	printf("\nBSCNN la %d: ",BSCNN(a,b));
    }
    void Cau1c()
    {
    	clrscr();
    	int a,b;
    		printf("\nNhap a: ");scanf("%u",&a);
    		printf("\nNhap b: ");scanf("%u",&b);
    		printf("\nUCLN la %d: ",UCLN(a,b));
    
    }
    
    double Luythua(float a,int n)
    {
    	if(n)
    		return a*Luythua(a,n-1);
    	else return 1;
    }
    void Cau1d()
    {
    	clrscr();
    	int n;
    	float a;
    		printf("\nNhap gia tri cho a: "); scanf ("%f",&a);
    	do {
    			printf("\nNhap so mu n: "); scanf("%d",&n);
    		}while(n<0);
    	printf("\nKet qua= %.4lg",Luythua(a,Luythua(3,n)));
    getch();
    }
    
    void Cau1e()
    {
    	clrscr();
    	printf("Chua lam duoc");
    	getch();
    }
    
    /********************** End code Bai 2 ******************************/
    void main()
    {	textcolor(YELLOW);
    	textbackground(BLUE);
    	clrscr();
    	char traloi;
    	printf("\nDe Bai:");
    	printf("\nCau 1a: Cho mot danh sach gom n so nguyen khac nhau. Dung phuong phap tim kiem tuyen tinh xac dinh vi tri cua mot so nguyen x trong danh sach");
    	printf("\nCau 1b: Cho 2 so nguyen duong, tim boi so chung nho nhat cua 2 so do");
    	printf("\nCau 1c: Cho 2 so nguyen duong a,b (a<b), dung thuat toan de quy tim UCLN(a,b)");
    	printf("\nCau 1d: Cho a so thuc va n la so nguyen duong, dung thuat toan de quy tinh a mu 3 mu n");
    	printf("\nCau 1e: Cho da thuc va viet chuong trinh tinh da thuc Pn(C)");
    
    	do {
    			Menu();
    			do {
    					traloi = getch();
    				} while (traloi < '0' || traloi > '5');
    					putc(traloi, stdout);
    						switch (traloi)
    							{
    								case '1': fflush(stdin);Cau1a();break;
    								case '2': fflush(stdin);Cau1b();break;
    								case '3': fflush(stdin);Cau1c();break;
    								case '4': fflush(stdin);Cau1d();break;
    								case '5': fflush(stdin);Cau1e();break;
    
    							}
    		} while (traloi != '0');
    }

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Nếu thế thì lúc gọi hàm bạn phải gọi thế này mới đúng :
    C Code:
    1. Luythua(Luythua(a,3),n);
    Cái hàm cũ của bạn
    C Code:
    1. Luythua(a,Luythua(3,n));
    là tính a ^ (3 ^ n) chứ ko phải (a ^ 3) ^ n
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  5. #5
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    các cậu xây dựng hàm lũy thừa thế này chỉ tính được số nhỏ thôi,trên diễn đàn có nói về cách tính giai thừa số lớn rồi đó,tự tìm hiểu xem

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

    Mặc định [ Solved ]Bài tập tính: a mũ 3 mũ n bị sai kết quả, giúp mình với

    Code:
    Luythua(Luythua(a,3),n);
    Như vầy vấn ko đúng bạn à :( bạn đã test thử chưa... Mình test mà vẫn ko được... Có ai có ý nào khác không!
    Đã được chỉnh sửa lần cuối bởi congtoan : 21-10-2008 lúc 12:21 AM.

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

    Hic hic, vẫn chưa có ai, giúp mình với nào :(

  8. #8
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Sao lại ko đúng, tất cả mọi code khi mình đưa lên đều chạy thử. Bạn chạy ra thế nào mà bảo ko đúng ?
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    Trích dẫn Nguyên bản được gửi bởi meoconlongvang Xem bài viết
    Sao lại ko đúng, tất cả mọi code khi mình đưa lên đều chạy thử. Bạn chạy ra thế nào mà bảo ko đúng ?
    Cảm ơn bạn rất nhiều, mình đã thử lại và cho ra kết quả rất đúng

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

  1. [ Solved ]Duyệt đồ thị bằng BFS cần giúp đỡ T_T !
    Gửi bởi rox_rook trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 21-11-2008, 07:09 PM
  2. [ Solved ]Cần giúp đỡ để tổng hợp bài tập về mảng
    Gửi bởi Lão Gia trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 14
    Bài viết cuối: 29-10-2008, 03:15 AM
  3. [ Solved ]Bài tập in ra các hình cần giúp đỡ
    Gửi bởi Lão Gia trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 20-10-2008, 04:20 PM
  4. [Solved] Giúp sửa lỗi khó hiều, bài quản lý nhân viên.
    Gửi bởi nhapmonIT trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 15
    Bài viết cuối: 19-09-2008, 11:42 AM
  5. [Solved] Giúp em về hiển thị số 1.99999999999999999999
    Gửi bởi tantripy trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 18-09-2008, 05:49 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