gpt4 book ai didi

有人可以帮我解决这个在 Dev-C++ 上用 C 语言编程的练习吗?

转载 作者:行者123 更新时间:2023-11-30 18:16:58 25 4
gpt4 key购买 nike

编写一个程序来读取数字,直到读取到数字 999,然后该过程停止读取。因此使用 do while。然后显示导入到计算机中的两位数(正数和负数)的总和以及导入到计算机中的数字总数。

当我插入数字 999 时,进程停止。效果很好。我确信 if 命令是错误的,因为它没有将任何数字相加。我运行它,它打印出两位数字的总和是 0。

int num1, a, sum;
a = 0;
sum = 0;

do
{
printf("give number\n");
scanf("%d", &num1);
a = a + 1;

if ((num1>=-99) && (num1<=-10) && (num1>=10) && (num1<=99))
{
sum = sum + num1;
}

printf("the sum of the two digit numbers is %d\n", sum);
}

while (num1 != 999);

printf("the sum of the two digit numbers is %d\n", athr);
printf("the number of numbers that were inserted overall is %d\n", a);

最佳答案

你的if语句永远不可能为真:

if ((num1>=-99) && (num1<=-10) && (num1>=10) && (num1<=99))

因为两个有效范围不重叠,并且您使用 && 来“组合”它们。

使用

if (((-99 <= num1) && (num1 <= -10)) || ((10 <= num1) && (num1 <= 99)))

相反。

<小时/>

我今天的可读性提示:请注意,我稍微调整了比较。范围比较更接近地反射(reflect)了它们在代数符号中的外观:

(-99 <= num1 <= -10) or (10 <= num1 <= 99)

这是一件小事,但我发现它对于能够遵循此类测试的逻辑有很大的不同。只是不要陷入这样的编码陷阱:

if ((-99 <= num1 <= -10) || (10 <= num1 <= 99))

不幸的是,这在 C/C++ 中语法上是有效的,但不会给你想要的结果。

关于有人可以帮我解决这个在 Dev-C++ 上用 C 语言编程的练习吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5915380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com