【发布时间】:2021-01-30 09:33:28
【问题描述】:
我现在正在参加 CS50 Introduction to CS。我试图解决 Set 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);
}
【问题讨论】: