我现在正在学习 CS50 CS 简介。我试图解决第一组,信用。该程序尚未完成,我只是想确保它计数正确。这是我的代码,它从用户输入中获取正数。第一个 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 的东西。
(这里故意不提供解决方案,因为
我如何提出和回答家庭作业问题? https://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)