30/09/2018, 16:03
Tính tổng các số
Nếu có 1 mảng kí tự toàn số ,làm sao để tính tổng các số trong mảng.Cụ thể:c=“1234”,lam sao de tinh duoc tong S=1+2+3+4.Mình dùng vòng lặp while để lấy từng kí tự ra rồi cộng lại với nhau nhưng không đúng… Nhờ mọi người giúp mình với.
Bài liên quan
Bạn thử gửi code lên xem thử sao chạy không đúng?
Bài này dễ làm nhưng giải thích thì hơi khó một chút. Trước hết Đạt nói lỗi sai ở chỗ
c[k]
không phải là số, nó là chuỗi. Mà muốn chuyển chuỗi thành số thì phải dùng làm atoiVấn đề là hàm
atoi
chỉ nhận vào chuỗi, cho nên phải cắt cáic[4]="1234";
thành 4 chuỗi, mỗi chuỗi có một ký tự là số và một ký tự kết thúc chuỗi là'\0'
.Sau đó mình sẽ chuyển những chuỗi nhỏ đó thành số rồi cộng lại. Bài ở dưới thực hiện các bước Đạt mô tả ở trên.
Cam on anh ve doan code.
chuoi_so[5] moi dung chu anh neu chuoi_so[4] sao chu duoc chuoi’1234"
À phải rồi, cái này không cẩn thận bị sai, cảm ơn @14520054 nhé, rất chuẩn
Cách anh Đạt làm hơi phức tạp rồi, nếu đổi 1 kí tự số ra số thì chỉ cần trừ cho 48 là xong.
Mã ASCII của các KÍ TỰ SỐ từ 0 đến 9
Binary Dec Hex Char
011 0000 48 30 0
011 0001 49 31 1
011 0010 50 32 2
011 0011 51 33 3
011 0100 52 34 4
011 0101 53 35 5
011 0110 54 36 6
011 0111 55 37 7
011 1000 56 38 8
011 1001 57 39 9
À đúng là lẩm cẩm thiệt, nếu dùng cách của Huân thì nhanh hơn, vì bài toán này thật ra chỉ là để người học nắm các khái niệm cơ bản.
Chuẩn
Bảng ASCII số 0 có thứ tự: 48, số 1: 49, số 2: 50 …
Tất cả thứ tự trên trừ cho 48, số 0 có thứ tự mới: 0 hay giá trị 0, số 1 giá trị 1, số 2 giá trị 2 …