大致了解了分支结构的两种语句之后,我找了程序来对照着敲敲看看。
1、if语句:编写一个程序,输入某人的身高(cm)和体重(kg),按下式确定其体重是否为标准、过胖或过瘦。(1)标准体重=身高-110;(2)超过标准体重5kg(即大于5kg)为过胖;(3)低于标准体重5kg(即小于5kg)为过瘦。
我们根据数学知识可以列出表达式如下:假定某人身高为h,体重为w
| “标准体重” (w=h-110及其他)——————> |“标准体重” (其他)
{ “过胖” (w>h-110+5) { “过胖” (h-110-w>5)
| “过瘦” (w<h-110-5) | “过瘦” (h-110-w<5)
#include <stdio.h>
void main()
{double h,w,i;
scanf("%d %d",&h,&w);
i=h-w-110;
{ if(i>5)
{printf("过胖");}
else if(i<5)
{ printf("过瘦");}
else
{printf("标准体重");}
}
}
s<250km 没有折扣
250≤s<500 2%折扣
500≤s<1000 5%折扣
1000≤s<2000 8%折扣
2000≤s<3000 10%折扣
3000≤s 15%折扣
设每公里每吨货物的基本运费为p,货物重为w,距离为s,
折扣为d,则总运费f的计算公式为:
f=p*w*s*(1-d)
分析折扣变化的规律性:
折扣的“变化点”都是250的倍数
在横轴上加一种坐标c,c的值为s/250。c代表250的倍数。
c<1,无折扣;
1≤c<2,折扣d=2%;
2≤c<4,d=5%;
4≤c<8,d=8%;
8≤c<12,d=10%;
c≥12,d=15%。
#include <stdio.h>
void main ( )
{int c,s;
float p,w,d,f;
scanf("%f,%f,%d",&p,&w,&s);
if(s>=3000) c=12;
else c=s/250;
switch(c)
{case 0:d=0;break;
case 1:d=2;break;
case 2:case 3:d=5;break;
case 4:case 5:case 6:case 7:d=8;break;
case 8:case 9:case 10: case 11:d=10;break;
case 12:d=15;break; }
f=p*w*s*(1-d/100.0);
printf("总运费=%15.4f\n",f);}//15位有效数字,小数点后取4位