l1nk ⁡ 2021-11-14 10:38 采纳率: 100%
浏览 30
已结题

error:下标要求数组或指针类型;间接寻址不同。(初学者)

简单的日期转天数,初学者求大虾帮忙。
#include<stdio.h>
int main()
{
int two,year,month,day,date,a,m;

int m[11]={31,two,31,30,31,30,31,31,30,31,30};
if (year/400==0||year%4==0&&year%100!=0)
    two=29;
else
    two=28;

printf("请输入某年某月某日");

scanf("%d,%d,%d",&year,&month,&day);

switch(month)
{case 1:
    date=day;
case 2:
    date=m[0]+day;
case 3:
    date=m[0]+m[1]+day;
case 4:
    date=m[1]+m[2]+m[0]+day;
case 5:
    date=m[1]+m[2]+m[3]+m[0]+day;
case 6:
    date=m[1]+m[2]+m[3]+m[4]+m[0]+day;
case 7:
    date=m[1]+m[2]+m[3]+m[4]+m[5]+m[0]+day;
case 8:
    date=m[1]+m[2]+m[3]+m[4]+m[5]+m[6]+m[0]+day;
case 9:
    date=m[1]+m[2]+m[3]+m[4]+m[5]+m[6]+m[7]+m[0]+day;
case 10:
    date=m[1]+m[2]+m[3]+m[4]+m[5]+m[6]+m[7]+m[8]+m[0]+day;
case 11:
    date=m[1]+m[2]+m[3]+m[4]+m[5]+m[6]+m[7]+m[8]+m[9]+m[0]+day;
case 12:
    date=m[1]+m[2]+m[3]+m[4]+m[5]+m[6]+m[7]+m[8]+m[9]+m[10]+m[0]+day;
}

printf("这是%d年第%d天",year,date);

return 0;
}

img

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-11-14 11:30
    关注

    你定义了一个数组叫m,还定义了一个int类型变量也叫m
    判断闰年应该是year%400==0不是 year/400==0
    你所有的case结束要加 break;
    int m[11]={31,two,31,30,31,30,31,31,30,31,30};这样不行啊,改为
    int m[11]={31,28,31,30,31,30,31,31,30,31,30};
    if (year%400==0||year%4==0&&year%100!=0)
    m[1]=29;

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上