菜菜鸟 新问题求助..提示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):");
}
----------------解决方案--------------------------------------------------------
我是新手 希望大家发现我书写的代码有什么问题 或者书写规范有待改进
麻烦大家指出来,谢谢大家了
----------------解决方案--------------------------------------------------------
同时也希望大家给个好点的思路..我觉得我思路有点乱
----------------解决方案--------------------------------------------------------
if((year%4==0&&year%100!=0)||year%400==0)
printf("%d是闰年",year);
else
printf("%d不是闰年",year);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这样判断好象更加简洁一些?如有不对,请指正。
----------------解决方案--------------------------------------------------------
[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);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这样判断好象更加简洁一些?如有不对,请指正。 ...
if((year%4==0&&year%100!=0)||year%400==0)
printf("%d是闰年",year);
else
printf("%d不是闰年",year);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这样判断好象更加简洁一些?如有不对,请指正。 ...
我试试 理论上说没问题 好像不只简洁一点点 多谢了
----------------解决方案--------------------------------------------------------
修改成:
#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");
}
}
问题解决 慢慢完善中 谢谢 广陵绝唱
----------------解决方案--------------------------------------------------------
if else的语法是
if exp;
if exp; else exp;
exp={exp;}
所以呢,if exp; {exp} else exp是不合乎要求的……
这里exp表示任何表达式。这种格式的语法说明应该习惯,因为这是标准和文档中的默认表达方式。
另:我的实现和建议见你发的另一个帖子……
----------------解决方案--------------------------------------------------------
#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");
}
}
这样应该可以吧
----------------解决方案--------------------------------------------------------