turbo我的C++代码不起作用

turbo My Code of C++ is not Working

本文关键字:不起作用 代码 C++ 我的 turbo      更新时间:2023-10-16

我是C++编程的学生,我试图在C++中创建一个年龄计算器,但我在将一个变量与另一个变量相乘时遇到了困难这是代码:

#include <iostream.h>
#include <conio.h>
void main()
{
    clrscr();
    int birthmonth,birthyear,birthdate;
    int currentmonth,currentyear,currentdate;
    int year,month,weeks,cal,calx,days,hours;
    cout<<"Hassan's Age Calculatornn";
    cout<<"Enter Your Birth Year(i.e:1996):";
        cin>>birthyear;
    cout<<"nEnter Your Birth Month(i.e:10):";
        cin>>birthmonth;
    cout<<"nEnter date of Birth(i.e:27):";
        cin>>birthdate;
    cout<<"nEnter The Current Month(i.e:7):";
        cin>>currentmonth;
    cout<<"nEnter The Current Year(i.e:2013):";
        cin>>currentyear;
    cout<<"nEnter Current Date(i.e:24):";
        cin>>currentdate;
    year=currentyear-birthyear;
    month=year*12;
    weeks=month*4.34;
    cal=(year*365.242)+currentdate;
    calx=cal+30.43;
    days=calx-birthdate;
    hours=days*24;
    cout<<"nnttYour Age is "<<year<< " in Years" ;
    cout<<"nnttYour Age is "<<month<< " in Months" ;
    cout<<"nnttYour Age is "<<weeks<<" in weeks";           
    cout<<"nnttYour Age is "<<days<<" in days";
    cout<<"nnttYour Age is "<<hours<<" in hours";
    getch();
}

看到变量名称hours它不起作用,它显示18640,但通过将变量的答案(天)乘以24,它应该是149712,在控制台屏幕上,天的答案是6238。我正在使用turbo C 4.0++,我需要帮助我做错了什么。

看起来您的史前编译器有16位int类型。149712太大,无法容纳16位,因此计算溢出并给出错误的值。您应该:

  • 如果您需要一个保证足够大的类型来表示多达几十亿的数字,请使用longint32_t;或者可能是floatdouble,因为您正在进行浮点运算
  • 使用现代编译器。在该编译器的生命周期中,该语言和标准库进行了两次重大更新,您正在编写的语言几乎无法识别为C++