鱼C论坛

 找回密码
 立即注册
查看: 1541|回复: 2

[已解决]困难

[复制链接]
发表于 2023-10-16 12:21:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这种格式怎么搞呀??
请写一段正负数统计的程序。

输入格式:
为若干整数,以-1结束(测试数据保证这组数中只有最后一个-1)。

输出格式:
共两行,第一行为三个整数(用一个空格分隔),依次为这组数中正数的个数,0的个数和负数的个数(不统计最后的-1)。

第二行为用一个空格分隔的两个整数,依次为这组数中所有正数的和及所有负数的和(不包括最后的-1)。

测试数据保证求和的结果可以用int型存储。。

输入样例:
1 -2 6 -7 0 9 0 10 -3 4 5 -1

输出样例:
6 2 3
35 -12

我只能输入一个字符就回车!!
最佳答案
2023-10-16 12:21:52
这是因为你的输入使用了标准输入流缓冲区,需要使用 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,则说明读取失败,可以结束循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-16 12:21:47 | 显示全部楼层
很抱歉,由于当前平台的限制,我无法接收并执行您提供的格式要求。不过,我可以为您提供一个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
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-16 12:21:52 | 显示全部楼层    本楼为最佳答案   
这是因为你的输入使用了标准输入流缓冲区,需要使用 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,则说明读取失败,可以结束循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 21:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表