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 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥20 白日门传奇少一个启动区服和启动服务器的快捷键,东西都是全的 , 他们说套一个出来就行了 但我就是弄不好,谁看看,
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题