关于一个 C 语言编写程序问题!!!

来源:百度知道 编辑:UC知道 时间:2024/05/11 16:25:55
我想编写一个 关于输出 闰年 个数的问题??
求2000年中的闰年个数
这是我编写的 错误好多啊
main()
{
int i,k;
k=0;
for(i=0,i<=2000,i++)
{
if(i%400==0||i%4==0&&i%100!=0);
k=k+1;}
printf("%d",k);
}

for里面是3个语句,要用分号
if判断条件后面没有分号
main()
{
int i,k;
k=0;
for(i=0;i<=2000;i++)
{
if(i%400==0||i%4==0&&i%100!=0)
k=k+1;}
printf("%d",k);
}

首先,你用到了printf,应该包含必要的头文件<stdio.h>
其次,main函数的书写风格年老失修。最好按标准写成int main(void)
再者,for循环里面是三条语句,每一条之后都应该用分号,第一条语句一般是做初始化的工作,第二条语句时条件测试,第三条语句一般是变量更新
第四,if条件测试后面的分号,我估计是一个typo,在C语言里面一条空语句只用一个分号表示,所以你那样写并不是语法错误,而是语义错误,因为那样,k+=1就不是在符合if的条件下执行,而是每次循环都执行,结果就是2001(for循环次数)。修改后的程序如下:

#include <stdio.h>

int
main(void)
{
int i, k = 0;

for(i=0; i<=2000; i++) {
if(i%400==0||i%4==0&&i%100!=0)
k++;
}
printf("%d\n",k);
return 0;
}

哈哈 ,这个程序不是想打印出来0-2000年之间的闰年了.
建议最好还是把&&连接的表达式扩起来了,关键是不记得优先级时,这样的话,结果才是肯定正确的了.

#include <stdio.h>

main(void)
{
int i;
for (i=0;i<=2000;i++)
{

if(i%4==0&&i%100!=0||i