c语言编程问题....急...

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:43:26
判别用i表示的某2000-2500年是否闰年。闰年的条件是符合下面二者之一;1、能被4整除,但不能被100整除,如2008。2、能被4整除,又能被400整除,如2000。我编译时过了,但是输出时却是满屏的“2001”我刚学C,不太懂,请高手详细指点....小弟感激不尽...

#include<stdio.h>
void main()
{
int i=2000;
while(i<=2500)
{
if(i%4==0&&i%100!=0||i%400==0)
i++;
printf("%d ",i);
}
printf("\n");

{
if(i%4==0&&i%100!=0||i%400==0)
i++;
printf("%d ",i);
}
i++位置不对
直接放在if后面的话,显然当i是闰年的时候i才++,这样是死循环

应该把printf和i++换位置,分号不变
#include<iostream>
using std::cout;
void main()
{
for(int i=2000;i<=2500;i++)
{
if(i%400==0||(i%4==0&&i%25!=0))
cout<<i<<"\t";
}
}

#include<stdio.h>
void main()
{
int i=2000;
while(i<=2500)
{
if(i%4==0&&i%100!=0||i%400==0)

printf("%d ",i);
i++;/*请注意i的位置*/
}
printf("\n");
你的程序,判断完为润年后,又对i加1.然后才打印。当然是2001。
要改成打印完再加1

哈哈,只要把i++;和printf("%d ",i);两句调换一下位置就可以了,很常见的逻辑错误

同意一二楼的! i++;和printf("%d ",i);两句应该调换才能实现正常的编程思想。

#include<stdio.h>
void main()
{
int i=2000;
while(i<=2500)
{
if(i%4==0&&i%100!=0||i%400==0)

printf(&