#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int n, sum = 0x0;
while ('\n'!=getchar()) {
scanf("%x", &n);
sum += n;
}
printf("%d", sum);
return 0;
}
我真的疑惑了,为什么溢出了啊...
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int n, sum = 0x0;
while ('\n'!=getchar()) {
scanf("%x", &n);
sum += n;
}
printf("%d", sum);
return 0;
}
我真的疑惑了,为什么溢出了啊...
因为getchar()先获取了一个字符,所以scanf获取到错误的数值,将getchar放到最后就行
int main() {
int n, sum = 0x0;
do {
scanf_s("%x", &n);
sum += n;
} while ('\n' != getchar());
printf("%d", sum);
return 0;
}