lozloz 发表于 2020-2-6 12:19:16

求大神帮忙呀

闰年的程序,可是打出了,没有错误也没有警告,但一在运行方框上打上年份,回车就出错了,求大神帮助

#include<stdio.h>


void main()
{
int a,b;
printf("Please input a number:");
scanf("%lf",&a);
if(a%4==0)
{

if(a%100==0)
{
   if(a%400==0)
   {
    b=1;
   }
   
   else
   {
    b=0;
   }
}
else
{
   b=1;
}
}
else
{
b=0;
}

if(b)
{
printf("%d year is run",a);

}
else
{
printf("%d year is not run",a);
}

}

人造人 发表于 2020-2-6 12:20:13

scanf("%lf",&a);

lf吗?

一个账号 发表于 2020-2-6 12:33:50

用 %d:
#include<stdio.h>


void main()
{
int a,b;
printf("Please input a number:");
scanf("%d",&a);
if(a%4==0)
{

if(a%100==0)
{
   if(a%400==0)
   {
    b=1;
   }
   
   else
   {
    b=0;
   }
}
else
{
   b=1;
}
}
else
{
b=0;
}

if(b)
{
printf("%d year is run",a);

}
else
{
printf("%d year is not run",a);
}

}

jackz007 发表于 2020-2-6 12:53:20

本帖最后由 jackz007 于 2020-2-6 12:57 编辑

      读取整数这么写不对
      scanf("%lf",&a);
      应该这么写代码:
      scanf("%d",&a);
      另外,代码是否不够简洁?
#include <stdio.h>

int main(void)
{
      int a                                                                  ;
      printf("Please input a number: ")                                        ;
      scanf("%d" , & a)                                                      ;
      if((! (a % 4) && a % 100) || ! (a % 400)) printf("%d year is run\n" , a) ;
      else printf("%d year is not run\n" , a)                                  ;
}

lozloz 发表于 2020-2-9 10:49:16

懂了懂了,谢谢
页: [1]
查看完整版本: 求大神帮忙呀