带有数字添加的C ++反向编号

时间:2011-04-06 15:36:47

标签: c++

大家好,所有人都提前感谢那些试图回答或回答这个问题的人。

  • 计算年份数字的总和。
  • 计算年份与年度“反向”之差的绝对值。
  • 计算当天的偶数因子数。
  • 计算日,月和年的最大公约数。
  • 计算解决Collat​​z问题所需的步骤数

这些是我需要完成的任务,作为工程系学生,我走了多远。在下面的代码中我希望有类似的东西

19
90个
0
1
0
T M B B

我得到的答案是

请输入您的出生日期(dd mm yyyy):12 11 1981年 19个
8468304
按任意键继续 。 。 。
8468304

如何做到正确我知道我的等式是正确的或(公式,方法)。不过这就是我所知道的。

#include<iostream>
#include<cstdlib>
using namespace std;

int main() 
{ 
    cout << "Please enter your birthdate (dd mm yyyy): "; 
    int day, month, year, count,rev;

    int sum = 0;

    cin >> day>> month >>year; 

    while (year!=0)
    {
        int count = year%10;
        sum +=count;
        year /= 10;
    }

    while(year>0)
    {
        rev = year%10;
        year=year/10;
    }

    cout<<sum<<endl;
    cout << rev;
    system ("pause");
    return 0;
}//end main

请帮忙!

2 个答案:

答案 0 :(得分:4)

在你的第一个循环while (year != 0)之后,你没有重置年份的值,所以它保持为零,第二个循环根本不执行。

您需要保存年份的值,并在开始第二次循环时使用它。

答案 1 :(得分:2)

关于组织的说明:我建议为每个任务编写一个子程序/函数,比如

int digit_sum(int year) {
    /* ... */
    return sum;
}

int reverse_difference(int year) {
    /* ... */
    return diff;
}

等等。通过这种方式,您还可以防止在第一次计算期间修改年份变量等错误而不保存原始值(正如David Winant已经指出的那样)。