【分析】主函数开始 必须有{},首先检查主函数是否有main(){ }。
代码需要改为
#include"stdio.h"
int main()
{
int y,i;
i=0;
y=2000;
for(;y<=3000;y++)
{
if((y%4==0)&&(y%100==0)||(y%400==0))
{
i++; printf("%d ",y);
if(i%10==0)printf("\n");
}
}
return 0;
}
运行结果为:
#include"stdio.h"
main() //这句改为main(){
int y,i;
i=0;
y=2000;
for(;y<=3000;y++)
{if((y%4==0)&&(y%100==0)||(y%400==0))
{i++;printf("%d",y);} // 改为{i++; printf("%d ",y);
if(i%10==0)printf("\n");}} //最后加一个大括号
运行结果:
2000 2100 2200 2300 2400 2500 2600 2700 2800 2900
3000
如果这是计算2000~3000年闰年的程序的话,有两点问题:
1. main()作为主函数应该用{}包含函数体
2. 算法中,(y%4==0)&&(y%100==0) 的效果包括 y%400==0,y%100==0 则必然 y%4 ==0。即其效果等于 y%100==0。
而闰年应该是 ((y%4 == 0) && (y%100 != 0)) || (y%400==0) 【能被4整除且不被100整除或者能被400整除的年份】
所以程序改进如下:
#include"stdio.h"
main()
{
int y,i;
for( i=0, y=2000; y<=3000; y++)
{
if(((y%4 == 0) && (y%100 != 0)) || (y%400==0)) // 此处原程序的==变为!=,且多加一对"()"
{
i++;
printf("%d ",y); // 此处%d后加一个“ ”以分割输出
}
if(i%10==0)
printf("\r\n"); // 此处使用 \r\n 兼容性更强
}
}
有疑问可追问
main()后面要加{}
少了一个花括号
#include