tyy030421 2021-12-08 11:38 采纳率: 100%
浏览 113
已结题

编写的代码无法成功运行,VS编译器提示:使用未初始化的内存”n".使用了未初始化的局部变量“n"

完整代码如下:

#include <iostream>
using namespace std;
class Date
{
public:
    Date();//构造函数
    int fun(int y,int m, int d, int n, int w);
    ~Date();//析构函数
};
int Date::fun(int y, int m, int d, int n, int w)
{
    switch (m)
    {
    case 2:n = 28;
        if ((y % 4 == 0 && y % 100 == 0) || (y % 400 == 0))n++;//闰年二月天数加一
        break;
    case 4:case 6:case 9:case 11:n = 30;
        break;
    default:n = 31;
    }
    d++;
    if (d > n)d = 1, m++;
    if (m > 12)m = 1, y++;
    w++;
    if (w == 8)w = 1;
    return 0;
}
Date date;
int main()
{
    int y; int m; int d; int w; int n;
    cout << "请输入日期(如2019年2月28日星期四应输入2019 2 28 4):";
    cin >> y >> m >> d >> w;
    date.fun( y,  m,  d,  w, n);
    int choose;
    cout << "请选择输出方式:1.x年x月x日星期x   2.x/x/x";
    cin >> choose;
    if (choose == 1)
    {
        cout << y << "年" << m << "月" << d << "日星期" << w << endl;
    }
    else
    {
        cout << y << "/" << m << "/" << d << endl;
    }
    return 0;
}

其中第34行若为date.fun( y, m, d, w, n); 编译器会提示:使用未初始化的内存”n".使用了未初始化的局部变量“n"

请问如何修改才能让它成功运行?谢谢啦

  • 写回答

1条回答 默认 最新

  • 万小橘 2021-12-08 11:44
    关注

    因为你定义了n,但是没有初始化也没有传值就在fun里使用了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵