|
|
发表于 2011-12-11 18:09:13
|
显示全部楼层
# include <stdio.h>
#define LEAP_YEAR(y) y % 4 == 0 && y % 100 == 0 || y % 400 == 0
int main ( int argc , char * argv [ ] )
{
int year ;
printf ( "%输入一个年份:" );
scanf ( "%d" , &year ) ;
LEAP_YEAR(year) ;
if ( LEAP_YEAR(year) )
printf ( "%d is a leap year. \n" , year ) ;
else
printf ( "%d is not a leap year. \n" , year ) ;
}
这里面的year为什么是原样输出?
答: 因为这段程序并没有对变量year进行赋值。
另外,这段程序后面应该加上 return 0; 否则编译是会报错的。
# include <stdio.h>
#define swap(A , B) int T ; T = A ; A = B ; B = T ;
int main ( int argc , char * argv [ ] )
{
int a , b ;
printf( "输入两个整数" ) ;
scanf ( "%d%d" , &a , &b ) ;
printf ( "a=%d b=%d\n" , a , b ) ;
swap(a , b) ;
printf ( "a=%d b=%d\n" , a , b ) ;
return 0 ;
}
这里面的a b 为什么不是原样输出?
答:这段程序中的swap( a, b)相当于
int T ; T = a ; a = b ; b = T ;
此时, a 和 b已经被赋值改变了。
|
|