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

Đề tài: Chương trinh tính tổng, hiệu, tích, thương hai số không chạy!

  1. #1
    Ngày gia nhập
    11 2012
    Bài viết
    2

    Question Chương trinh tính tổng, hiệu, tích, thương hai số không chạy!

    Đoạn code sau biên dịch không lỗi, chạy bình thường nhưng đến đoạn nhâp phép toán thì nó không tính tiếp và tự thoát khỏi chương trình:
    Code:
    #include <stdio.h>  
    #include <conio.h>
    int main()
    {
         char toantu;
         double a,b;
         printf("Nhap hai so:");
         scanf("%lf%lf",&a,&b);
         printf("Nhap vao phep toan:");
         scanf("%c",&toantu);//Chương trình tự động thoát tại đây
         switch(toantu)
         {
                       case '+':
                            printf("%lf+%lf=%lf",a,b,a+b);
                            break;
                       case '-': 
                            printf("%lf-%lf=%lf",a,b,a-b);
                            break;
                       case '*':
                            printf("%lf*%lf=%lf",a,b,a*b);
                            break;
                       case '/':
                       {
                            if(b==0)
                                    printf("Khong chia duoc!");
                            else
                                    printf("%lf/%lf=%lf",a,b,a/b);
                            break;
                       }
         }
         getch();
    }
    Viết lại như sau thì chạy được:
    Code:
    #include <stdio.h>  
    #include <conio.h>
    int main()
    {
         char toantu;
         double a,b;
         printf("Nhap so thu nhat, toan tu va so thu hai:");
         scanf("%lf%c%lf",&a,&toantu,&b);//Viết lại như thế này thì chạy được
         switch(toantu)
         {
                       case '+':
                            printf("%lf+%lf=%lf",a,b,a+b);
                            break;
                       case '-': 
                            printf("%lf-%lf=%lf",a,b,a-b);
                            break;
                       case '*':
                            printf("%lf*%lf=%lf",a,b,a*b);
                            break;
                       case '/':
                       {
                            if(b==0)
                                    printf("Khong chia duoc!");
                            else
                                    printf("%lf/%lf=%lf",a,b,a/b);
                            break;
                       }
         }
         getch();
    }
    Ai giải thích giùm em tại sao lại như vậy với
    Đã được chỉnh sửa lần cuối bởi leanhtai01 : 25-12-2012 lúc 07:38 PM.

  2. #2
    Ngày gia nhập
    02 2010
    Bài viết
    113

    C Code:
    1.  printf("Nhap vao phep toan:");
    2.      fflush(stdin);//thêm cái nỳ zô
    3.      scanf("%c",&toantu);//Chương trình tự động thoát tại đây

  3. #3
    Ngày gia nhập
    11 2011
    Bài viết
    9

    Ở đoạn code trên sau khi scanf 2 số a b, bạn phải thêm lệnh fflush(stdin) để xóa ký tự "enter" đang được lưu trong bộ đệm bàn phím. Nếu không giá trị của biến toantu sẽ được lưu là ký tự xuống dòng LF (mã ASCII = 10).

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

  1. Bài tập C Chuong trinh khi chạy trên 2 đối tượng thì bị lổi phong chử!
    Gửi bởi start0o0 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 06-12-2011, 12:27 AM
  2. sự giống và khác nhau giữa chạy trương trinh console và win.App?
    Gửi bởi khatmau90 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 12-04-2010, 10:31 AM
  3. các lỗi khi chạy chương trinh turbo C++3.0
    Gửi bởi alonegirl208 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 02-12-2009, 09:58 PM
  4. để chạy code C++/C# thì cần cài chương trinh nào??
    Gửi bởi sMagic89 trong diễn đàn Thắc mắc chung
    Trả lời: 12
    Bài viết cuối: 23-10-2008, 06:08 PM
  5. bài toán hiển thị các tiến trinh đang chạy trong Win bang C
    Gửi bởi nhatlong77 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 9
    Bài viết cuối: 08-10-2008, 08:03 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