}
int n=123456,i; i=n;
printf(\报数到%d的人是\switch(i) { }
printf(\
case 1: printf(\case 2:case 14: case 3:case 13: case 4:case 12: case 5:case 11: case 6:case 10: case 7:case 9: case 8:
printf(\printf(\printf(\printf(\printf(\printf(\printf(\
程序的运行结果: 报数到123456的人是D
(5)编写一个程序,求ax+bx+c=0方程的根。
【解】先计算d=b-4ac,再根据d是大于0、等于0还是小于0分别求根。程序如下: /*文件名:exci4_5.cpp*/ #include
int func(float a,float b,float c,float *x1,float *x2) { } main() {
float a,b,c,x1,x2,n; printf(\输入a,b,c:\float d; d=b*b-4*a*c; if (d>0) { }
else if (d==0) { }
else return 0;
*x1=(-b)/(2*a); return 1;
*x1=(-b+sqrt(d))/(2*a); *x2=(-b-sqrt(d))/(2*a); return 2;
VC++6.0 2
2
21
scanf(\ n=func(a,b,c,&x1,&x2); if (n==2) { printf(\两个根:\\n\ printf(\ printf(\
}
else if (n==1) { printf(\一个根:\\n\ printf(\ }
else printf(\没有根\\n\
}
22
4.3 上机实验4及参考答案
实验内容
假定向国外邮寄包裹的收费如下计算:首先,包裹重量四舍五入到最近的15g的倍数,然后按表4.1收费。编写一个程序根据用户输入的包裹重量和里程计算邮费。
表4.1 包裹邮费计算表 重量(g) 收费(元) 15 5 30 9 45 12 60
14(每足1000 km加1元) 75以上
15(每足1000 km加2元)
编程要求
在程序中使用switch语句进行判断计算。
解题思路和程序代码
对于用户输入的重量w,采用如下公式四舍五入到最近的15g的倍数: x=((w+7)/15)*15
当w小于8时,x=0,但邮费应为5;当x=60或x>=60时,还应考虑里程费用。因此采用一个switch语句进行判定计算。程序如下: /*文件名:prog4.cpp*/ #include
int p,w,f,x;
printf(\重量,里程:\ scanf(\ x=((w+7)/15)*15; switch (x) {
case 0: f=5; break; case 15: f=5;
23 VC++6.0 break; case 30: f=9; break; case 45: f=12; break;
case 60: f=14+(p/1000)*1; break;
default: f=15+(p/1000)*2; break; }
printf(\邮费:%d元\\n\}
程序运行结果: 重量,里程:80,2300↙ 邮费:19元
24