Python重写C语言程序100例--Part9
''' 【程序71】 题目:编写input()和output()函数输入,输出5个学生的数据记录。 1.程序分析: 2.程序源码: 使用list来模拟结构(不使用class) stu = [string,string,list] ''' N = 3 #stu # num : string # name : string # score[4]: list student = [] for i in range(5): student.append(['','',[]]) def input_stu(stu): for i in range(N): stu[i][0] = raw_input('input student num:\n') stu[i][1] = raw_input('input student name:\n') for j in range(3): stu[i][2].append(int(raw_input('score:\n'))) def output_stu(stu): for i in range(N): print '%-6s%-10s' % ( stu[i][0],stu[i][1] ) for j in range(3): print '%-8d' % stu[i][2][j] if __name__ == '__main__': input_stu(student) print student output_stu(student)
''' 题目:反向输出一个链表。1.程序分析: 2.程序源码: ''' if __name__ == '__main__': ptr = [] for i in range(5): num = int(raw_input('please input a number:\n')) ptr.append(num) print ptr ptr.reverse() print ptr
''' 【程序72】 题目:创建一个链表。 1.程序分析: 2.程序源码: ''' if __name__ == '__main__': ptr = [] for i in range(5): num = int(raw_input('please input a number:\n')) ptr.append(num) print ptr
''' 【程序74】 题目:连接两个链表。 1.程序分析: 2.程序源码: 代码上好像仅仅有,列表排序 ''' if __name__ == '__main__': arr1 = (3,12,8,9,11) ptr = list(arr1) print ptr ptr.sort() print ptr
''' 【程序75】 题目:放松一下。算一道简单的题目。 1.程序分析: 2.程序源码: ''' if __name__ == '__main__': for i in range(5): n = 0 if i != 1: n += 1 if i == 3: n += 1 if i == 4: n += 1 if i != 4: n += 1 if n == 3: print 64 + i
''' 【程序76】 题目:编写一个函数,输入n为偶数时。调用函数求1/2+1/4+...+1/n,当输入n为奇数时。调用函数 1/1+1/3+...+1/n(利用指针函数) 1.程序分析: 2.程序源码: ''' def peven(n): i = 0 s = 0.0 for i in range(2,n + 1,2): s += 1.0 / i return s def podd(n): s = 0.0 for i in range(1, n + 1,2): s += 1 / i return s def dcall(fp,n): s = fp(n) return s if __name__ == '__main__': n = int(raw_input('input a number:\n')) if n % 2 == 0: sum = dcall(peven,n) else: sum = dcall(podd,n) print sum
''' 【程序77】 题目:填空练习(指向指针的指针) 1.程序分析: 2.程序源码: main() { char *s[]={"man","woman","girl","boy","sister"}; char **q; int k; for(k=0;k<5;k++) {;/*ÕâÀïÌîдʲôÓï¾ä*/ printf("%s\n",*q); } } ''' if __name__ == '__main__': s = ["man","woman","girl","boy","sister"] for i in range(len(s)): print s[i]
''' 【程序78】 题目:找到年龄最大的人,并输出。请找出程序中有什么问题。 1.程序分析: 2.程序源码 ''' if __name__ == '__main__': person = {"li":18,"wang":50,"zhang":20,"sun":22} m = 'li' for key in person.keys(): if person[m] < person[key]: m = key print '%s,%d' % (m,person[m])
''' 【程序79】 题目:字符串排序。 1.程序分析: 2.程序源码: ''' if __name__ == '__main__': str1 = raw_input('input string:\n') str2 = raw_input('input string:\n') str3 = raw_input('input string:\n') print str1,str2,str3 if str1 > str2 : str1,str2 = str2,str1 if str1 > str3 : str1,str3 = str3,str1 if str2 > str3 : str2,str3 = str3,str2 print 'after being sorted.' print str1,str2,str3
''' 【程序80】 题目:海滩上有一堆桃子,五仅仅猴子来分。第一仅仅猴子把这堆桃子凭据分为五份。多了一个。这仅仅 猴子把多的一个扔入海中,拿走了一份。第二仅仅猴子把剩下的桃子又平均分成五份,又多了 一个。它相同把多的一个扔入海中。拿走了一份,第三、第四、第五仅仅猴子都是这样做的, 问海滩上原来最少有多少个桃子? 1.程序分析: 2.程序源码: ''' if __name__ == '__main__': for i in range(4,10000,4): count = 0 m = i for k in range(5): j = i / 4 * 5 + 1 i = j if j % 4 == 0: count += 1 else: break i = m if count == 4: print count break