|
发表于 2023-9-30 15:48:06
|
显示全部楼层
在你的代码中,存在一些问题:
1. 在判断谁是爹的条件中,应该是 NA 是 SB 的整数倍,而不是 NB 是 SA 的整数倍。修改为 if (NA % SB == 0 && SA % NB != 0)。
2. 当两人同时满足或同时不满足上述判定条件时,应该是原始数字大的那个是爹。修改为 else if (SA == SB || (SA % NB != 0 && SB % NA != 0))。
3. 在输出父亲的时候,应该输出大写字母 'A' 或 'B',而不是小写字母 'a' 或 'b'。修改为 printf("A\n") 或 printf("B\n")。
4. scanf("%d", &n); 后应加一个换行符 \n,即 scanf("%d\n", &n);,这样可以避免读取这个整数后的回车符干扰后面的输入。
修改后的代码如下:
- #include <stdio.h>
- int main() {
- int a, b, n;
- scanf("%d\n", &n);
- while (n > 0) {
- scanf("%d %d", &a, &b);
- int c, sa = 0, sb = 0;
- while (a > 0) {
- c = a % 10;
- a = a / 10;
- sa = sa + c;
- }
- while (b > 0) {
- c = b % 10;
- b = b / 10;
- sb = sb + c;
- }
- if (sb % a == 0 && sa % b != 0)
- printf("B\n");
- else if (sb % a != 0 && sa % b == 0)
- printf("A\n");
- else if (sb % a == 0 && sa % b == 0) {
- if (a > b)
- printf("A\n");
- else
- printf("B\n");
- } else if (sb % a != 0 && sa % b != 0) {
- if (a > b)
- printf("A\n");
- else
- printf("B\n");
- }
- n--;
- }
- return 0;
- }
复制代码
在修改后的代码中,我们根据题目要求对判断条件进行了修正,并通过输出大写字母 'A' 或 'B' 来表示谁是爹。同时,添加了读取整数后的换行符处理,保证输入的正确性。
如果问题已经解决,请设置最佳答案 |
|