mọi người cho em hỏi em viết sai chỗ nào ạ vì khi em chạy cho số thứ 1 bằng 1, số thứ 2 bằng 2 thì nó ra 1+2=c ?
Em cảm ơn ạ
#include<stdio.h>
int main()
{
char a, b, c;
scanf("%c %c", &a, &b);
c=a+b;
printf("%c+%c=%c", a, b, c);
return 0;
}
mọi người cho em hỏi em viết sai chỗ nào ạ vì khi em chạy cho số thứ 1 bằng 1, số thứ 2 bằng 2 thì nó ra 1+2=c ?
Em cảm ơn ạ
#include<stdio.h>
int main()
{
char a, b, c;
scanf("%c %c", &a, &b);
c=a+b;
printf("%c+%c=%c", a, b, c);
return 0;
}
Bạn nhập vào kiểu ký tự nên nhập 1 thì nó là kì tự ‘1’, 2 là ký tự ‘2’.
Trong bảng mã ascii, ‘1’ có giá trị 49, ‘2’ có giá trị 50,
Do đó, ‘1’ + ‘2’ = 99. Bạn in ra kiểu ký tự, nên nó in ra ‘c’ là vì c có giá trị 99 trong bảng mã ascii
vậy nếu em thay đoạn char bằng int thì được ạ ?
Vì bạn truyền cho scanf là %c nên nó vẫn đọc như vậy, và bạn in ra %c nên kết quả cũng vẫn như vậy
chuyển char thành int nhá
Lần này e thay %c thành %d thì khi nhập số thứ nhất là 1 số bất kì ví dụ là 1, số thứ là 2 thì nó sẽ in ra 0+2=2 ạ. cho em hỏi em sai ở đâu ạ.
Em cảm ơn ạ.
#include<stdio.h>
int main()
{
char a, b, c;
scanf("%d %d", &a, &b);
c=a+b;
printf("%d+%d=%d", a, b, c);
return 0;
}