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 手机淘宝抓清除消息接口
  • ¥15 C#无selenium
  • ¥15 LD衰减计算的结果过大
  • ¥15 用机器学习方法帮助保险公司预测哪些是欺诈行为
  • ¥15 计算300m以内的LD衰减
  • ¥15 数据爬取,python
  • ¥15 怎么看 cst中一个面的功率分布图,请说明详细步骤。类似下图
  • ¥15 为什么我的pycharm无法用pyqt6的QtWebEngine
  • ¥15 FOR循环语句显示查询超过300S错误怎么办
  • ¥15 数电设计题 没有设计思路 不知道用什么芯片进行设计 求提供设计思路