Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 15 kết quả

Đề tài: mách giùm với !

  1. #1
    No Avatar
    kool_boy Khách

    Cool mách giùm với !

    Đề bài : nhập vào một số nguyên N kiểm tra N có bao nhiêu chữ số, chữ số lớn nhất=?
    Thanks!
    Đã được chỉnh sửa lần cuối bởi kool_boy : 11-11-2008 lúc 12:39 AM.

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

    Phép tính Mod (chia lấy phần dư %) để lấy ra từng chữ số

    Code đại luôn thử tay nghề
    C++ Code:
    1. #include <iostream>
    2.  
    3. int main()
    4.  
    5. {
    6.     // lay so nhap vao
    7.     int n; 
    8.     std::cout << " Nhap so N = ";
    9.     std::cin >> n;
    10.    
    11.     // thoat luon neu n <= 0
    12.     if(n <= 0)
    13.         return -1; // -1 coi nhu so ko hop le
    14.  
    15.     // tiep tuc xu ly
    16.     int _t = 0;
    17.     int cnt = 0;
    18.     int max = 0;
    19.     // qua trinh xu ly
    20.     do {
    21.         _t = n % 10; // lay phan du tuc la tung chu so tu cuoi len
    22.         max = max > _t ? max : _t; // lay cai lon hon
    23.         n /= 10; // giam gia tri n
    24.         cnt++; // tang bien dem chu so
    25.    
    26.     } while (n > 0);
    27.  
    28.     // in ra ket qua
    29.     std::cout << "So chu so: " << cnt << endl
    30.           << "Chu so lon nhat: " << max << endl
    31.           << "Code by bvKim @ Cviet. " << endl
    32.           << "Kieu gi cung mat ban quyen nhu choi :D" << endl;
    33.  
    34.    
    35.     return 0;
    36. }

  3. #3
    No Avatar
    kool_boy Khách

    ui bài này viết bằng C thôi mình mới nhập môn mà ! ai biết chỉ giùm nghen. Thanks!

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

    thay <iostream> bằng stdio.h

    thay std::cout bằng printf()
    thay std::cin bằng scanf()
    endl bằng \n

    , không replace được thì cũng chịu

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

    ui bài này viết bằng C thôi mình mới nhập môn mà ! ai biết chỉ giùm nghen. Thanks!
    Đoạn dưới thì hiểu chứ.
    Code:
        // qua trinh xu ly
        do {
            _t = n % 10; // lay phan du tuc la tung chu so tu cuoi len
            max = max > _t ? max : _t; // lay cai lon hon
            n /= 10; // giam gia tri n
            cnt++; // tang bien dem chu so
       
        } while (n > 0);
    Đem số đó chia 10 lấy dư, đó là 1 chữ số.
    Phần nguyen khi chia 10 gán lại cho chính nó.
    -> Lập lại quá trình trên đến khi phần nguyên là không.

    Bạn nên tự code mới mong tiến bộ đc

  6. #6
    No Avatar
    kool_boy Khách

    Mặc định mách giùm với !

    mình viết code thế này không biết sai chỗ nào vậy?mình mới học lập trình đang học vòng lặp.
    Code:
    #include <stdio.h>
    #include<math.h>
     main()
    
    {
        int N,a,max=0,dem=0;  
        printf( " Nhap so N = ");
        scanf("%d",&N);
       	while(N>0)
       	{
      		N%10=a;/*lay so du la hang don vi*/
      		dem=dem+1;
      		if(a>max)
      		max=a;
      		N/10;/*ket thuc va tiep tuc vong lap while */
        }
        printf(" cac chu so cua N : %d\n",dem);
        printf(" chu so lon nhat : %d\n",max);
    }

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

    Chương trình sai ở nhiều điểm.
    1. Nếu số nhập vào là số âm hoặc 0 thì sao? chưa thấy xét.

    2. Sai ngữ pháp
    C++ Code:
    1. N%10=a;/*lay so du la hang don vi*/
    sửa thành:
    C++ Code:
    1. a = N%10;

    3. cái này chả để làm gì, sai ngữ pháp
    C++ Code:
    1. N/10

    sửa lại
    C++ Code:
    1. N /= 10;
    2. hoặc
    3. N = N / 10;

    Lần sau, compile thấy lỗi thì đọc cái lỗi xem nó báo gì, sai ở đâu rồi từ đó mà sửa.
    Mới tập code mà hỏi liên tục mấy cái cơ bản này rồi không khá lên được đâu (cái này của mấy tiền bối trong Cviệt nhắc nhở, K không dám quên )

  8. #8
    No Avatar
    kool_boy Khách

    cái N/10 đó là để kết thúc một lần chạy khi N%10 lấy số dư rồi thì phải chia N cho 10 để tiếp tục vòng lặp sau.
    mình không biết nó sai chỗ nào thì mới hỏi mong được chỉ bảo còn nếu biết rồi thì còn hỏi làm gì.Mục đích của diễn đàn chẳng phải như vậy sao? cảm ơn đã giúp!
    N /= 10;
    hoặc
    N = N / 10; cái này mình cũng chẳng hiểu là cái gì.

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

    Trích dẫn Nguyên bản được gửi bởi kool_boy Xem bài viết
    N /= 10;
    hoặc
    N = N / 10; cái này mình cũng chẳng hiểu là cái gì.
    Hai cái là như nhau cả : N chia chính nó cho 10.

    PS : Chú ý cách đặt tiêu đề. Tiêu đề phải phản ánh được nội dung cần hỏi chứ không phải chung chung như vậy. Bạn sửa tiêu đề lại đi nếu không mod box này sẽ del bài đó.
    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.

  10. #10
    No Avatar
    kool_boy Khách

    em viết code thế này chạy rồi nhưng không hiểu chỗ a=N%10;tại sao viết là N%10=a; lai không được vậy ?
    Code:
    #include <stdio.h>
    #include<math.h>
    main()
    
    {
    int N,a,max=0,dem=0; 
    printf( " Nhap so N = ");
    scanf("%d",&N);
    while(N>0)
    {
    a=N%10;/*lay so du la hang don vi*/
    dem=dem+1;
    if(a>max)
    max=a;
    N=N/10;/*ket thuc va tiep tuc vong lap while */
    }
    printf(" cac chu so cua N : %d\n",dem);
    printf(" chu so lon nhat : %d\n",max);
    }

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

  1. các bạn sửa giùm lỗi này hộ tớ với!
    Gửi bởi mr.cuong_tq trong diễn đàn Nhập môn lập trình Java
    Trả lời: 1
    Bài viết cuối: 01-10-2012, 06:36 PM
  2. Fix lỗi giùm em với ạ
    Gửi bởi anhtnse02984 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 11
    Bài viết cuối: 10-08-2012, 02:19 PM
  3. Turbo C Lỗi Mọi người sữa giùm mình lỗi ni
    Gửi bởi binhlama00 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 01-03-2012, 08:56 PM
  4. mấy anh sửa lỗi này giùm em nha
    Gửi bởi lu_ngovan trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 05-05-2010, 04:17 PM
  5. sửa giùm em bài sắp xếp
    Gửi bởi tonggiavinh trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 19-01-2008, 09:42 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