求大佬帮忙看看为什么两个简单句子替换以后效果不一样

附魔兔子 2017-11-02 12:22:10
pat乙1028,很简单的一题,就是if((birth>18140906)&&(birth<20140906))(在下面代码中标红了)会让答案不对,改成 if(birth<18140906||birth>20140906){}else……就对了。。请问是什么情况??

下附代码:
#include<stdio.h>

long long minage=18140905,maxage=20140907;

struct people
{
char name[6];
int y,m,d;

}p[100010];

int main()
{
int n,i,max=1,min=1,sum=0;
long long birth;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%s",p[i].name);
scanf("%d/%d/%d",&p[i].y,&p[i].m,&p[i].d);
birth=p[i].y*10000+p[i].m*100+p[i].d;
if((birth>18140906)&&(birth<20140906))
{
sum++;
if(birth<maxage)
{
maxage=birth;
max=i;
}
if(birth>minage)
{
minage=birth;
min=i;
}
}
}
if(sum)
printf("%d %s %s",sum,p[max].name,p[min].name);
else
printf("0");
return 0;
}
...全文
101 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2017-11-02
  • 打赏
  • 举报
回复
大于和小于 ,dan shi meiyoukaolv dao =
#include<stdio.h>

long long minage=18140905,maxage=20140907;

struct people
{
    char name[6];
    int y,m,d;

}p[100010];

int main()
{
    int n,i,max=1,min=1,sum=0;
    long long birth;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%s",p[i].name);
        scanf("%d/%d/%d",&p[i].y,&p[i].m,&p[i].d);
        birth = p[i].y * 10000 + p[i].m * 100 + p[i].d;

        if((birth >= 18140906) && (birth <= 20140906))
        {
            printf("+++%s: birth = %lld\n", p[i].name, birth);
            sum++;
            if(birth < maxage)
            {
                maxage = birth;
                max = i;
            }
            if(birth>minage)
            {
                minage = birth;
                min = i;
            }
        }
    }
    if(sum)
        printf("%d %s %s\n",sum,p[max].name,p[min].name);
    else
        printf("0\n");

    return 0;
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧