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

Đề tài: Lệnh putchar(...) trong một đoạn chương trình!

  1. #1
    Ngày gia nhập
    02 2009
    Nơi ở
    Hà Nội_PTIT_cơ sở 1
    Bài viết
    15

    Question Lệnh putchar(...) trong một đoạn chương trình!

    Trong bài tập "Chuyển đổi 1 số thành dãy chữ số tương ứng", chương trình nguồn như sau:
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
      
       
    void chuyen(int n)
      {if (
    n<0
          {
    putchar('-');
           
    n=-n;
          }
       if (
    n/10chuyen(n/10);
       
       
    putchar(n%10+'0');
      } 
        
       
    main()
      {
    clrscr();
        
    int n;
        
    printf("n=");
        
    scanf("%d", &n);
        
    chuyen(n);
        
    getch();
      } 
    Giả sử ta nhập vào n=12345, máy tính sẽ in ra màn hình 12345.

    Mình không hiểu cách sử dụng hàm putchar(...)
    Chỉ mới biết sơ sơ lệnh putchar(); là đọc một kí tự từ bộ nhớ đệm bàn phím.
    Các bạn giải thích về hàm putchar(...) giúp mình được không?
    Đặc biệt các bạn giải thích hộ mình các lệnh:
    PHP Code:
    putchar('-');
    n=-n

    PHP Code:
    putchar(n%10+'0'); 
    Cám ơn các bạn nhiều!
    Đã được chỉnh sửa lần cuối bởi vuduykhanh : 08-03-2009 lúc 12:17 AM.

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    #include <stdio.h>
    int putchar( int ch );

    đó là cấu trúc, truyền vào hàm một giá trị nguyên, hàm sẽ đưa lên màn hình kí tự có mã ASCII tương ứng.

    Code:
    putchar('-');
    n=-n;
    Đây là TH số bạn nhập bào là số âm, vậy nó cần có kí tụ '-' ở trước, putchar sẽ đơn giản đưa ra màn hình kí tự đó. Bạn có thể thay thử lệnh đó bằng putchar(45);

    n=-n; hay n *= -1 chỉ là đổi dấu giá trị n thôi.

    Code:
    putchar(n%10+'0');
    Cái trên bạn cần hiểu rõ một chút về bảng mã ASCII, kí tự số có mã hệ thập phân là 48 -> 52 tương ứng với 0 -> 9

    một số (1 chữ số) cộng với mã của số 0 thì ra mã của kí tự số tương ứng. Bạn cũng có thể thay '0' bằng 48

    Vd: putchar(5+48); in ra kí tự '5'

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    Trích dẫn Nguyên bản được gửi bởi vuduykhanh Xem bài viết
    Trong bài tập "Chuyển đổi 1 số thành dãy chữ số tương ứng", chương trình nguồn như sau:
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
      
       
    void chuyen(int n)
      {if (
    n<0
          {
    putchar('-');
           
    n=-n;
          }
       if (
    n/10chuyen(n/10);
       
       
    putchar(n%10+'0');
      } 
         
       
    main()
      {
    clrscr();
        
    int n;
        
    printf("n=");
        
    scanf("%d", &n);
        
    chuyen(n);
        
    getch();
      } 
    Giả sử ta nhập vào n=12345, máy tính sẽ in ra màn hình 12345.

    Mình không hiểu cách sử dụng hàm putchar(...)
    Chỉ mới biết sơ sơ lệnh putchar(); là đọc một kí tự từ bộ nhớ đệm bàn phím.
    Các bạn giải thích về hàm putchar(...) giúp mình được không?
    Đặc biệt các bạn giải thích hộ mình các lệnh:
    PHP Code:
    putchar('-');
    n=-n

    PHP Code:
    putchar(n%10+'0'); 
    Cám ơn các bạn nhiều!

    PHP Code:
    if (n<0
          {
    putchar('-');
           
    n=-n;
          } 
    nếu n âm thì { viết "-" ra màn hình và chuyển n thành số dương }
    ví dụ :-123 thì viết - ra màn hình và chuyển n thành 123

    PHP Code:
     if (n/10chuyen(n/10); 
    đây là đệ quy ..... nếu mà n/10 > 0 hay tức là nếu n>10 thì chuyển n/10 trước ( tạm dịch là thế )


    PHP Code:
    putchar(n%10+'0'); 
    ví dụ n= 8 thì n%10 là 8
    8+'0' = '8'
    bạn hiểu ko ?
    '0' = 48
    8+48 = 56
    56='8'
    nên nó sẽ viết số 8 ra màn hình.... hiểu rồi chứ
    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

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

    putchar(c) đơn thuần là in ra ký tự.
    Nếu c có kiểu dữ liệu là char là in ra c, nếu có kiểu dữ liệu là int thì in ra ký tự có mã ASCII là c.

  5. #5
    Ngày gia nhập
    02 2009
    Nơi ở
    Hà Nội_PTIT_cơ sở 1
    Bài viết
    15

    Em hiểu rồi ^^
    Cám ơn các bác nhá!

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

  1. tại sao mình in putchar(7) mà khong có tiếng chuong vậy các bạn
    Gửi bởi levanthuan57 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 21-06-2012, 02:21 PM
  2. lệnh putchar(),getchar(). Giúp dzới
    Gửi bởi cr9 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 20-12-2009, 10:48 AM
  3. putchar(),getchar() ???
    Gửi bởi cr9 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: 19-12-2009, 01:19 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