为什么条件相同的两个 while 循环中的第二个循环不起作用?
Why is the second of two while loops with identical condition not working?
我现在正在学习 CS50 CS 简介。我试图解决第 1 组,Credit。该程序尚未完成,我只是想确保它正确计数。这是我的代码,它取自用户输入的正数。第一个 while 循环计算倒数第二个数字并将它们加在一起并给出输出,第二个 while 计算每个最后一个数字并相加。
如果我 运行 分别计算两个 while 循环,它们都可以正确计数。就我而言,现在它只计算第一时间。
我会感谢你的帮助!
#include <stdio.h>
#include <cs50.h>
int main(void)
{
long credit;
int multiply_by_two, sum_by_two = 0, sum = 0;
do
{
credit = get_long("Number: ");
}
while (credit < 0);
while (credit != 0)
{
long second_digit = credit / 10;
long last_digit = second_digit % 10;
multiply_by_two = last_digit * 2;
if (multiply_by_two > 9)
{
sum_by_two += multiply_by_two % 10 + multiply_by_two / 10;
} else
{
sum_by_two += multiply_by_two;
}
credit = credit /100;
}
while (credit != 0)
{
long first_digit = credit % 10;
sum += first_digit;
credit = credit / 100;
}
printf("First total sum: %d\n", sum_by_two);
printf("Second total sum: %d\n", sum);
}
第一个while (credit != 0)
显然以credit==0
结尾。
第二个 while (credit != 0)
确保正文仅在 credit != 0
.
时执行
您可能希望第二个循环处理初始 credit
的副本,而不是保证为 0 的内容。
(因为
这里特意不提供解决方案
How do I ask and answer homework questions?)
我现在正在学习 CS50 CS 简介。我试图解决第 1 组,Credit。该程序尚未完成,我只是想确保它正确计数。这是我的代码,它取自用户输入的正数。第一个 while 循环计算倒数第二个数字并将它们加在一起并给出输出,第二个 while 计算每个最后一个数字并相加。
如果我 运行 分别计算两个 while 循环,它们都可以正确计数。就我而言,现在它只计算第一时间。 我会感谢你的帮助!
#include <stdio.h>
#include <cs50.h>
int main(void)
{
long credit;
int multiply_by_two, sum_by_two = 0, sum = 0;
do
{
credit = get_long("Number: ");
}
while (credit < 0);
while (credit != 0)
{
long second_digit = credit / 10;
long last_digit = second_digit % 10;
multiply_by_two = last_digit * 2;
if (multiply_by_two > 9)
{
sum_by_two += multiply_by_two % 10 + multiply_by_two / 10;
} else
{
sum_by_two += multiply_by_two;
}
credit = credit /100;
}
while (credit != 0)
{
long first_digit = credit % 10;
sum += first_digit;
credit = credit / 100;
}
printf("First total sum: %d\n", sum_by_two);
printf("Second total sum: %d\n", sum);
}
第一个while (credit != 0)
显然以credit==0
结尾。
第二个 while (credit != 0)
确保正文仅在 credit != 0
.
您可能希望第二个循环处理初始 credit
的副本,而不是保证为 0 的内容。
(因为
这里特意不提供解决方案
How do I ask and answer homework questions?)