全国咨询/投诉热线:400-618-4000

c/c++培训之C语言代码和Python代码对比

更新时间:2016年08月01日09时57分 来源:传智播客C/C++学科 浏览次数:

三道编程基础练习题的C语言代码和Python代码对比
 
一、输入三个整数 x, y, z,请把这三个数由小到大输出。
 
C Code:
 
#include <stdio.h>
int main(void)
{  
int x,y,z,t;  
scanf("%d%d%d",&x,&y,&z);  
if (x > y)  
{
t=x;
x=y;
y=t;
} /*交换x,y的值*/ 
if(x > z)  
{
t=z;
z=x;
x=t;
}/*交换x,z的值*/ 
if(y > z)  
{
t=y;
y=z;
z=t;
}/*交换z,y的值*/ 
printf("small to big: %d %d %d\n",x,y,z);
return 0;
}  
 
Python Code 1:
 
a=[input(),input(),input()]
a.sort()
print a
 
Python Code 2:
x,y,z=input(),input(),input()
t=0  
if x>y:t=x;x=y;y=t
if x>z:t=z;z=x;x=t
if y>z:t=y;y=z;z=t
print "small to big: %d %d %d" % (x,y,z)  
 
====================================
 
二、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
 
C Code:
 
#include <stdio.h>
int main(void)  
{
int i,j,k,n;  
printf("'water flower'number is:");  
for(n = 100; n < 1000; n++)  
{
i=n/100;/*分解出百位*/  
j=n/10%10;/*分解出十位*/  
k=n%10;/*分解出个位*/  
if(i*100+j*10+k == i*i*i+j*j*j+k*k*k)  
{
printf("%-5d",n);  
}
}
printf("\n");  
return 0;
}
 
Python Code:
 
print "water flower'number is:",  
for n in range(100,1000):  
i,j,k=n/100,n/10%10,n%10
if i*100+j*10+k==i**3+j**3+k**3:
print "%-5d" % n,
 
====================================
 
三、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
 
C Code:
 
#include <stdio.h>
int main(void
{
float sn=100.0,hn=sn/2;  
int n;  
for(n=2;n<=10;n++)  
{
sn=sn+2*hn;/*第n次落地时共经过的米数*/  
hn=hn/2; /*第n次反跳高度*/  
}
printf("the total of road is %f\n",sn);  
printf("the tenth is %f meter\n",hn);  
return 0;
}
 
Python Code:
 
sn=100.  
hn=sn/2  
for i in range(2,10+1):  
sn+=2*hn
hn/=2
print "the total of road is %f" % sn  
print "the tenth is %f meter" % hn  
 
====================================
 
 本文版权归传智播客C++培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客C/C++培训学院
首发:http://www.itcast.cn/c/