

Var
s:string;
d1,d2,i:integer;
Begin
readln(s);
d1;=0;d2:=0;
For i:=1 to length(s) do
If s[i] in ['0'..'9'] then d1:=d1+1
else d2:=d2+1;
writeln('so cac pt chu so la:',d1);
write('so cac pt ki tu la:',d2);
readln
End.
Cho mình hỏi nếu như xâu S có mặt các kí hiệu như '&', '$','{','}',..... thì sao? Bạn viết như vậy chưa chắc đã đúng!Đề 1:https://diendan.hocmai.vn/threads/tin-11.738675/#post-3709272
Đề 2
Mã:Var s:string; d1,d2,i:integer; Begin readln(s); d1;=0;d2:=0; For i:=1 to length(s) do If s[i] in ['0'..'9'] then d1:=d1+1 else d2:=d2+1; writeln('so cac pt chu so la:',d1); write('so cac pt ki tu la:',d2); readln End.
Vậy thì sửa lại cái khúc else ý là:Cho mình hỏi nếu như xâu S có mặt các kí hiệu như '&', '$','{','}',..... thì sao? Bạn viết như vậy chưa chắc đã đúng!
Else if not(s[i] in ['0'..'9'] ) then d2:=d2+1:
Nếu như vậy cũng có khác gì đâu?????Vậy thì sửa lại cái khúc else ý là:Mã:Else if not(s[i] in ['0'..'9'] ) then d2:=d2+1:
if (s[i] in ['a'..'z']) or s[i] in ['A'..'Z']) d2:=d2+1;
Sao mà không khác được bạn, ngày từ đầu code đã đúng rồiNếu như vậy cũng có khác gì đâu?????
Bạn phải cho vòng if như sau:
Mã:if (s[i] in ['a'..'z']) or s[i] in ['A'..'Z']) d2:=d2+1;
Kí tự là a,b,c,....z hoặc A,B,C,... Z chứ ?????Sao mà không khác được bạn, ngày từ đầu code đã đúng rồi
Đầu tiên kiêm tra s[ i ] nếu là chữ số thì cộng vào d1, còn nếu không phải thì cộng vào d2 nên các ký tự như { ,; cũng sẽ được cộng nha
# $ là kí tự.Cần gì nhỉ, nếu nó không phải chữ số thì nó cộng vào hết chứ cần gì đk, thêm đk thì các ký tự {,%$ làm sao mà cộng vào được nhỉ
View attachment 102398
View attachment 102397
? Có tất cả 9 kí tự mà bạn, kể cả # và $# $ là kí tự.
Đáp án in ra là 2 và 7 bạn nhé!