又一C语言问题!

来源:百度知道 编辑:UC知道 时间:2024/09/26 16:28:08
以下是我自己写的 让机器列出 1990~2500 年的润年的!

#include "stdio.h"
void main()
{
int pax(int f);
int x=1990,y;
y=pax(x);
printf("%d",y);
}
int pax(int f)
{
int e,v;
if(f/4,f/100!=0) f=e;
return(e);
f++;
if(f/100,f/400) v=e;
return(v);
}

turbo c++ 3.0 里 调试,有一个警告,在 f++; 这里!
一.到底有什么错吗?
二.帮写个 用2个子程序分别处理 1.X/4=0 X/100!0 2.X/100=0 X/400=0
也就是说 调用两个函数 分别处理 符合润年的 两个条件 然后跳到主函数 输出!

一、这个程序不可以这么写,应该像这样:
//////////////////////////////////////////

#include "stdio.h"
void main()
{
int pax(int f);
int x=1990;
while (x++<=2500)
{
if (pax(x))
printf("%d\n",x++);

}
getch();
}
int pax(int f)
{
if (!(f%4)&&(f%100)||!(f%400)) return 1;
else return 0;
}
/////////////////////////////////////////////////////

二、程序如下:

///////////////////////////////////////////////////
#include <stdio.h>
int pax1(int y)
{
return((!(y%4)&&(y%100))?1:0);
//使用了条件操作符 “? :”如果y%4==0并且y%100!=0则返回1,否则返回0;

}

int pax2(int y)
{
return ((y%400)?0:1);//使用了条件操作符 “? :”如果y%400!=0则返回1,否则返回0;
}
void main()
{
int i=1900;
while (i++<=2500)
if(pax1(i)||pax2(i)) printf("%d\n",i);//调用pax1和pax2对年份进行判断,是润年则输出,否则不输出
getch();