m0_63670854 2021-11-02 17:59 采纳率: 100%
浏览 16
已结题

请各位兄弟看一下,我这代码哪里逻辑错了,还有就是为啥总是出现使用了未初始化变量的值

int com(int y,int m)
{
int d;
switch (m)
{
int d;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: d = 31; break;
case 4:
case 6:
case 9:
case 11:d = 30; break;
case 2:
if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
d = 29;
else
d = 28;
break;
}
return d;

}
void main()//给定年数和月份,判断该月对于应的天数,闰年的话2月为29天,平年为28天
{
int y,m, d;
scanf("%d%d", &y, &m);
d= com(y, m);
printf("%d\n", d);
}

  • 写回答

1条回答 默认 最新

  • bec_better 2021-11-02 18:08
    关注

    了解下 作用域的东西吧。。直接把里面那个int d删去就行了。外面的那个int d在函数域有效,里面的int d并没有修改外部的d值,返回一个未初始化的变量,肯定告错。。其他地方没细看 。。 变量不要重复定义 而且 最好不要定义太多同名变量

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

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月14日
  • 创建了问题 11月2日

悬赏问题

  • ¥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键失灵