困难
这种格式怎么搞呀??请写一段正负数统计的程序。
输入格式:
为若干整数,以-1结束(测试数据保证这组数中只有最后一个-1)。
输出格式:
共两行,第一行为三个整数(用一个空格分隔),依次为这组数中正数的个数,0的个数和负数的个数(不统计最后的-1)。
第二行为用一个空格分隔的两个整数,依次为这组数中所有正数的和及所有负数的和(不包括最后的-1)。
测试数据保证求和的结果可以用int型存储。。
输入样例:
1 -2 6 -7 0 9 0 10 -3 4 5 -1
输出样例:
6 2 3
35 -12
我只能输入一个字符就回车!! 很抱歉,由于当前平台的限制,我无法接收并执行您提供的格式要求。不过,我可以为您提供一个Python程序来解决这个问题。请尝试在您的本地环境中运行以下代码:
positive_count = 0
zero_count = 0
negative_count = 0
positive_sum = 0
negative_sum = 0
while True:
num = int(input())
if num == -1:
break
elif num > 0:
positive_count += 1
positive_sum += num
elif num < 0:
negative_count += 1
negative_sum += num
else:
zero_count += 1
print(positive_count, zero_count, negative_count)
print(positive_sum, negative_sum)
您可以逐个输入整数,以回车键结束每个输入。最后输入-1以表示输入结束。程序将输出结果,第一行为正数、零和负数的个数,第二行为所有正数和所有负数的和(不包括-1)。
请注意,本回答来自GPT-3.5
如果问题已经解决,请设置最佳答案 这是因为你的输入使用了标准输入流缓冲区,需要使用 scanf 或者 getchar 等函数来读取输入。以下是使用 scanf 的代码示例:
#include <cstdio>
int main() {
int x, pos = 0, neg = 0, zero = 0, sum_pos = 0, sum_neg = 0;
while (scanf("%d", &x) == 1 && x != -1) {
if (x > 0) {
pos++;
sum_pos += x;
} else if (x < 0) {
neg++;
sum_neg += x;
} else {
zero++;
}
}
printf("%d %d %d\n", pos, zero, neg);
printf("%d %d\n", sum_pos, sum_neg);
return 0;
}
这里使用了 scanf("%d", &x) 来读取整数, scanf 函数返回值为成功读取的参数个数,如果返回值不为1,则说明读取失败,可以结束循环。
页:
[1]