在线编译器 C

#include <stdio.h> int main() { int a,num=0,min=0; scanf("%d",&a); while (a!=0){ if (a>0) {num+=a;} if (a<0) {min+=a;} scanf("%d",&a); } printf("%d %d",num,min); return 0; }
这段代码的功能是:不断读入整数,直到输入0为止,然后分别输出所有正数的和(num)以及所有负数的和(min)。但变量名min容易让人误解为最小值,实际上它累加的是负数之和。

- 变量min的命名不准确,它存储的是负数的总和,而不是最小值。建议使用更清晰的变量名,比如neg_sum或sum_neg。
- 代码逻辑正确,但注意:如果输入的第一个数就是0,循环不会执行,num和min都会保持0,输出"0 0",这符合预期吗?考虑一下题目是否要求处理这种情况。