C语言经典100例(Python版本)046-050


               
               
                '''
【程序46】
题目:宏#define命令练习(1)   
1.程序分析:
2.程序源代码:
没有C语言的宏,就这么写了
'''
TRUE = 1
FALSE = 0
def SQ(x):
    return x * x
print 'Program will stop if input value less than 50.'
again = 1
while again:
    num = int(raw_input('Please input number'))
    print 'The square for this number is %d' % (SQ(num))
    if num >= 50:
        again = TRUE
    else:
        again = FALSE
'''
题目:宏#define命令练习(2)
1.程序分析:            
2.程序源代码:
#include "stdio.h"
#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
            int t;\
            t=a;\
            a=b;\
            b=t;\
           }'
这个宏定义python不支持
'''
def exchange(a,b):
    a,b = b,a
    return (a,b)
if __name__ == '__main__':
    x = 10
    y = 20
    print 'x = %d,y = %d' % (x,y)
    x,y = exchange(x,y)
    print 'x = %d,y = %d
'''
【程序48】
题目:宏#define命令练习(3)   
1.程序分析:
2.程序源代码:
#define LAG >
#define SMA ''
if __name__ == '__main__':
    i = 10
    j = 20
    if i > j:
        print '%d larger than %d' % (i,j)
    elif i == j:
        print '%d equal to %d' % (i,j)
    elif i  j:
        print '%d smaller than %d' % (i,j)
    else:
        print 'No such value'
   
'''
【程序49】
题目:#if #ifdef和#ifndef的综合应用。
1. 程序分析:
2.程序源代码:
#include "stdio.h"
#define MAX
#define MAXIMUM(x,y) (x>y)?x:y
#define MINIMUM(x,y) (x>y)?y:x
void main()
{
    int a=10,b=20;
#ifdef MAX
    printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#else
    printf("\40: The lower one is %d\n",MINIMUM(a,b));
#endif
#ifndef MIN
    printf("\40: The lower one is %d\n",MINIMUM(a,b));
#else
    printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#endif
#undef MAX
#ifdef MAX
    printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#else
    printf("\40: The lower one is %d\n",MINIMUM(a,b));
#endif
#define MIN
#ifndef MIN
    printf("\40: The lower one is %d\n",MINIMUM(a,b));
#else
    printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#endif
}
这个还是预处理的用法,python不支持这样的机制,演示lambda的使用。
'''
MAXIMUM = lambda x,y :  (x > y) * x + (x  y) * y
MINIMUM = lambda x,y :  (x > y) * y + (x  y) * x
if __name__ == '__main__':
    a = 10
    b = 20
    print 'The largar one is %d' % MAXIMUM(a,b)
    print 'The lower one is %d' % MINIMUM(a,b)