PAT A1001提交时,选择语言为C++输出答案错误,但是选择语言为C输出答案正确。
本地编译器为VS2019。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<math.h>
int main() {
int sum = 0, a = 0, b = 0;
scanf("%d%d", &a, &b);
sum = a + b;
if (sum < 0)printf("-");
char number[10];
memset(number, 0, sizeof(number));
sprintf(number, "%d", abs(sum));
int len = strlen(number);
int times = len / 3;
int start = len % 3;
for (int i = 0; i < len; i++) {
if (i % 3 == start && i != 0) {
printf(",%c", number[i]);
}
else printf("%c", number[i]);
}
}
估计把printf默认是c语言,你换成cout试试会不会识别为c++
C++,是要这么改:
#include<iostream>
using namespace std;
int main() {
int sum = 0, a = 0, b = 0;
cin >> a >> b;
sum = a + b;
if (sum < 0) {
cout<<'-';
sum = -sum;
}
char number[10];
memset(number, 0, sizeof(number));
int len = sprintf(number, "%d", sum);
//int times = len / 3;
int start = len % 3;
for (int i = 0; i < len; i++) {
if (i % 3 == start && i != 0)
cout << ',' << number[i];
else cout << number[i];
}
}