01/10/2018, 11:38
Trợ giúp bài tập C
em đang gặp một bài toán như thế này,
thì vấn đề ở đây là em không biết nhập vào theo kiểu biến char hay biến int
biến int thì không nhận đc kí tự A,B,C
mà biến char thì em gặp lỗi với số 10 vì nó ko nhập được số 10.
mà chuyển sang mảng string char a[2] thì nó không chạy ạ
có ai cho em hướng giải quyết đc ko ạ ?
Bài liên quan
Chào sockyone!
Cho mình hỏi nhập 1 lần hay 2 lần. Nếu 1 lần thì có space phải không?
đang làm bài tập tuần 4 à bác
có space bác ạ.
nãy mình thử dùng mảng string nhưng vẫn không được,
( dùng a là string , c là int : if (a==“2”) c=2 ) sử dụng như thế có đúng ko nhỉ
mình in ra tổng c+d ( c là a, d là b) nhưng kết quả luôn là 0 nếu mình gán c,d=0 từ đầu và là 1 nếu mình k gán
Đúng cú pháp cơ bản của if rồi, sao bạn vẫn phải hỏi lại?
Nhập string rồi chuyển thành số tương ứng.
Chào sockyone!
Mình nói bạn dùng mảng char nha!
1 số hàm bạn cần tìm hiểu strtok(), fgets(). dùng switch…case giải quyết các trường hợp có thể xảy ra để tính kết quả. Mình chỉ gợi ý thôi bạn tìm hiểu thì sẽ thấy hướng giải quyết từ từ thôi nha! Chúc bạn thành công. Nếu có gì không hiểu thì hỏi mình, Nếu bạn hiểu các hàm này thì đủ giải quyết.
Bạn có thể cho mình biết là tại sao mảng char[2] không chạy được không.
Mình có một ý tưởng là:
Vì A là ký tự đặc biệt thì nếu nó xuất hiện đầu tiên thì mình chuyển nó sang cái thứ hai
Tiếp theo, bạn dùng strlen để xem số lượng ký tự trong mảng:
Nếu có 2 ký tự. Bạn dùng strcmp xem liệu đó có phải là 10 không
Nếu chỉ có 1 ký tự thì bạn dùng isdigit để xem đó có phải số không rồi chuyển nó thành số bằng cách charPresent - ‘0’ . Còn nếu là chữ thì kiểm tra ký tự đầu tiên có phải là J,Q,K không nếu đúng cho nó trả về 10
Phần còn lại thì bạn chắc có thể làm tiếp được
mình không nắm rõ về các kiểu dữ liệu nên sử dụng cách thủ công này tuy hơi dài nhưng về lí thì đúng,
nhưng đến khi nhập test thì test gì cũng ra bằng 1 là thế nào nhỉ ? ai dò lỗi hộ đc ko ạ ?
Bỏ dấu cách xem có chuyện gì xảy ra.
Vẫn ra 1 hết.
check lại dùm mình xem có lỗi gì được không ạ ?
Do máy bạn =))) Mình chạy ở đây và ngon ơ =))
Ideone.com
Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages.
không phải đâu
9 + J phải ra 19 chứ không phải 22.
mình thử lại các loại biến thì đều ra là 22. cũng giống như trên máy mình đều ra 1
( cách chọn biến random khác nhau giữa 2 nền tảng )
mình nghi ngờ phần nhập hay phần if của mình có vấn đề bạn check kĩ giúp mình đc k
Thớt về xem cho kĩ giáo trình phần chuỗi nhé, đặc biệt là phần so sánh.
Không thể so sánh trực tiếp xâu như vậy. Phải dùng
strcmp
.cám ơn nhé nhưng bài mình dài quá
Thế này đã là gì.
Code mình, đang code dở:
Xài switch case đi.
Với lại so sánh chuỗi rồi gán xài dấu “” hay ‘’ có ảnh hưởng gì ko nhỉ.
Cái chính là không so sánh được trực tiếp.
Ai bảo không.
Thì đó, bởi vậy tui mới hỏi là so sánh chuỗi kiểu đó là đúng hay sai kakakaka.
String compare chưa chịu xài!
Code của tớ nè