Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 8 của 8
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Thắc mắc về số chữ số của 1 biến.


  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn dùng mảng char nhá, thế này:


    Mã:
    char number[100];gets(number);
    Sau đó lấy độ dài bởi hàm strlen():


    Mã:
    strlen(number);
    Nếu độ dài bằng 10 thì đúng, còn không thì sai.
    Còn nữa, bạn muốn chắc 10 chữ số trong dãy đều là chữ số thì duyệt từng kí tự của number:


    Mã:
    for(i = 0; i < strlen(number); i ++)
    Nếu từng kí tự đều nằm trong đoạn ['0', '9'] thì đúng. Còn không thì sai.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    An ISBN consists of exactly 10 digits. The rightmost digit is the check digit. The check digit is validated modulo 11.
    • multiply each digit from the first to the ninth by a weight from 10 to 2 respectively (the first digit by 10, the second by 9,..., the ninth by 2).
    • the sum of the products plus the check digit should be divisible without remainder by 11.
    • if there is a remainder, the whole number is not a valid ISBN.
    Consider the following example:

    ISBN 0003194876
    |
    check digit is 6
    add first set of alternates to themselves
    0 0 0 3 1 9 4 8 7
    10 9 8 7 6 5 4 3 2
    0 0 0 21 6 45 16 24 14 = 126
    add check digit 6
    total 132
    divide by 11 12
    remainder 0
    Therefore this ISBN is valid

    Specifications
    Design a program that validates an ISBN. Your program keeps accepting a whole number and determining if that whole number is a valid ISBN. Your program terminates when the user enters 0 as the whole number.


    Đây là bài mình được cho và đây là code của mình, nhưng với code này thì khi mình nhập số 78 vẫn báo là đúng vì 7*2+8=22 chia hết cho 11. Mình muốn thêm điều kiện là số nhập vào phải 10 chữ số thì đúng, còn lại báo là sai thì thêm thế nào được

    Mã:
    #include<stdio.h> #include<stdlib.h> #include<math.h> main() { long long x,c,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11; printf("Choose one of the following options: "); printf("1. Enter ISBN number "); printf("0. Exit "); printf("ISBN Validator "); printf("============== "); printf("(Valid ISBN:0003194876) "); do{ printf("Your Selection(0->1):", c); scanf("%lld", &c); switch(c){ case 1: printf("ISBN (Enter a number):"); scanf("%lld", &x); if(x==0) printf("This is not a valid ISBN "); else { s1=x/pow(10,9); s2=x/pow(10,8); s3=x/pow(10,7); s4=x/pow(10,6); s5=x/pow(10,5); s6=x/pow(10,4); s7=x/pow(10,3); s8=x/pow(10,2); s9=x/pow(10,1); s10=x%10; s11=s1%10*10+s2%10*9+s3%10*8+s4%10*7+s5%10*6+s6%10*5+s7%10*4+s8%10*3+s9%10*2+s10; if(s11%11==0) printf("This is a valid ISBN "); else printf("This is not a valid ISBN number "); } break; case 0: printf("Have a nice day "); break; default: printf("Invalid selecion. Try again. "); } }while(c==1); }

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bài này *bắt buộc* sử dụng char[].

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    c có thể sửa giúp t chút đc ko mà nó nhập số có 10 chữ số mới cho là đúng ý. T chưa học nhưng c sửa giúp t tham khảo trc đc ko

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    hi, theo m nghĩ là đơn giản thế này:
    nhập vào 1 số nguyên, nếu số có 10 chữ số thì số đó phải >= 1 tỷ
    vậy thì cứ
    Mã:
    int a;
    cout<<"nhap vao so can kiem tra: "; cin>>a;
    if(a/1000000000 >0)
    cout<<"so co(hoac hon) 10 chu so";

  7. #7
    Ngày tham gia
    Sep 2015
    Đang ở
    89 Tam Trinh - Hoàng Mai - Hà Nội
    Bài viết
    0
    uk nhưng mà bài ở trên ý cậu. Mã sach đó có thể có chữ số 0 ở đầu. Ví dụ như 0000000078 cũng là một mã ISBN đúng mà cậu

  8. #8
    àh, thế thì bn phải ghi ra là 1 đoạn chứ -_-
    "nhập vào 1 số nguyên" nghe cứ như là 1 con số, còn mã vạch thì cứ dùng mảng hay xâu thôi??

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •