标题:菜菜鸟 新问题求助..提示if else 没有匹配..!
只看楼主
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
 问题点数:0 回复次数:7 
菜菜鸟 新问题求助..提示if else 没有匹配..!
想写一个判断 生日是否输入正确的函数 带闰年

代码如下 但是不能运行 不知道错在哪里 括号都括正确 对称了

请老鸟指教

#include <stdio.h>


void main()
{
    int year=0;
    int monch=0;
    int day=0;

    printf("请输入生日(格式1988-06-18):");
    scanf("%d-%d-%d",&year,&monch,&day);
    fflush(stdin);
    for(;(year>=1900 && year<=2000);)
    {
        {
        if((year%4)==0)
           
            {
            if((year%100)!=0)
                printf("输入的是闰年\n");
                    {
                    if(monch>=1&&monch<=12)
                        printf("月输入正确\n");
                    else
                        printf("月输入错误\n");
                    }
            else
                {
                if((year%400)==0)
                    printf("输入的是闰年\n");
                else
                    printf("你输入的不是闰年\n");
                }    
                    
            }
        else
            printf("你输入的不是闰年\n");
        }    
    }
    printf("年输入错误,请重新输入(格式1988-06-18):");
}
搜索更多相关主题的帖子: 菜菜 else 提示 
2008-05-03 01:08
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
得分:0 
  我是新手 希望大家发现我书写的代码有什么问题 或者书写规范有待改进

麻烦大家指出来,谢谢大家了
2008-05-03 01:15
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
得分:0 
同时也希望大家给个好点的思路..我觉得我思路有点乱
2008-05-03 01:27
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
得分:0 
if((year%4==0&&year%100!=0)||year%400==0)
        printf("%d是闰年",year);
else
        printf("%d不是闰年",year);

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    这样判断好象更加简洁一些?如有不对,请指正。
2008-05-03 01:29
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
得分:0 
[bo]以下是引用 [un]广陵绝唱[/un] 在 2008-5-3 01:29 的发言:[/bo]

if((year%4==0&&year%100!=0)||year%400==0)
        printf("%d是闰年",year);
else
        printf("%d不是闰年",year);

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    这样判断好象更加简洁一些?如有不对,请指正。 ...

我试试 理论上说没问题  好像不只简洁一点点 多谢了
2008-05-03 01:36
剁吧剁吧
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2008-5-2
得分:0 
修改成:
#include <stdio.h>


void main()
{
    int year=0;
    int monch=0;
    int day=0;

    while(1)
    {
    printf("请输入生日(格式1988-06-18):");
    scanf("%d-%d-%d",&year,&monch,&day);
    fflush(stdin);

    if((year>=1900 && year<=2000))
            if((year%4==0&&year%100!=0)||year%400==0)
                if(monch<=12&&monch>=1)
                    printf("输入的月份正确\n");
                        
                else
                    printf("输入的月份错误\n");
            else
                printf("你输入的不是闰年\n");    
    else
        printf("你输入的年份错误\n");
    }
}

问题解决 慢慢完善中 谢谢 广陵绝唱
2008-05-03 01:48
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:0 
if else的语法是
if exp;
if exp; else exp;
exp={exp;}
所以呢,if exp; {exp} else exp是不合乎要求的……
这里exp表示任何表达式。这种格式的语法说明应该习惯,因为这是标准和文档中的默认表达方式。

另:我的实现和建议见你发的另一个帖子……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-05-03 07:08
fhx
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-4-15
得分:0 
#include <stdio.h>
void main()
{
    int year=0;
    int monch=0;
    int day=0;
    while(1)
    {
    printf("请输入生日(格式1988-06-18):");
    scanf("%d-%d-%d",&year,&monch,&day);
    fflush(stdin);

    if((year>=1900 && year<=2000))
      printf("你输入的年份正确\n");
    else
        printf("你输入的年份错误\n");
            if((year%4==0&&year%100!=0)||year%400==0)
               printf("你输入的是闰年\n");
            else
                printf("你输入的不是闰年\n");
                if(monch<=12&&monch>=1)
                    printf("输入的月份正确\n");

                else
                    printf("输入的月份错误\n");


    }
}
这样应该可以吧
2008-05-03 10:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-212092-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.424863 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved