这段C程序我用C++运行的时候老是提示有一个error,是错在哪了呢?求助!

2024-12-26 12:59:41
推荐回答(6个)
回答1:

【分析】主函数开始 必须有{},首先检查主函数是否有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;

}

运行结果为:

回答2:

#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

回答3:

如果这是计算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 兼容性更强
}
}

有疑问可追问

回答4:

main()后面要加{}

回答5:

少了一个花括号

回答6:

#include //撸主发现亮点了?