Xuic 2022-01-08 16:54 采纳率: 0%
浏览 20

1028 人口普查 (20 分)(C语言)乙级 段错误,不知道怎么改

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include<stdio.h>
#include<stdlib.h>
struct people
{
    char name[6];
    int year;
    int month;
    int day; 
};
int calculate(int y,int m,int d);
int main()
{
    struct people arr[200];
    int i=0,j=0;
    int N,age=0,cnt=0;
    int max=-1,min=999;
    int fmax=0,fmin=0; 
    scanf("%d",&N);
    for(i=0;i<N;i++)
    {
        scanf("%s %d/%02d/%02d",arr[i].name,&arr[i].year,&arr[i].month,&arr[i].day);
    }
    for(i=0;i<N;i++)
    {
        age=calculate(arr[i].year,arr[i].month,arr[i].day);
        if(age<=200&&age>0)
        {
            cnt++;
            if(age>max)
            {
                max=age;
                fmax=i;
            }
            if(age<min)
            {
                min=age;
                fmin=i;
            }
        }    
    }
    printf("%d",cnt);
    if(cnt)
    printf(" %s %s\n",arr[fmax].name,arr[fmin].name);
    
    
    
    return 0;
 } 
 int calculate(int y,int m,int d)
 {
     int age=0;
     age=2014-y;
     if(y==2014&&m==9&&d==6)
         return 1;
     if(m<9)
     {
         age+=1;
     }
     else if(m==9)
     {
         if(d<6)
         age+=1;
     }
     
     return age;
 }

段错误,不知道怎么改

  • 写回答

2条回答 默认 最新

  • 关注

    21行 scanf("%s %d/%02d/%02d",arr[i].name,&arr[i].year,&arr[i].month,&arr[i].day);改成

    scanf("%s %d/%d/%d",arr[i].name,&arr[i].year,&arr[i].month,&arr[i].day);//不需要加02
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 1月8日

悬赏问题

  • ¥15 如何使用micpyhon解析Modbus RTU返回指定站号的湿度值,并确保正确?
  • ¥15 C++ 句柄后台鼠标拖动如何实现
  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理