C语言谭浩强第四版例题(4)

2018-12-29 17:54

例4.10 运输公司对用户计算运输费用。路程(s km)越远,每吨·千米运费越低。 编写程序:

#include int main() {

int c,s;

float p,w,d,f;

printf(\ // 提示输入的数据

scanf(\ // 输入单价、重量、距离 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); printf(\ return 0; }

// 3000km以上为同一折扣

// 3000km以下各段折扣不同,c的值不相同 // c=0,代表250km以下,折扣d=0

// c=1,代表250到500km以下,折扣d=2% // c=2和3,代表500到1000km以下,折扣d=5% // c=4-7,代表1000到2000km以下,折扣d=8% // c=8-11,代表2000到3000km以下,折扣d=10% // c12,代表3000km以上,折扣d=15% // 计算总运费

// 输出总运费,取两位小数 例5.1求1+2+3+?+100,即 n?1编写程序:

#include int main() {

int i=1,sum=0; // 定义变量i的初值为1,sum的初值为0

while (i<=100) // 当i>100,条件表达式i<=100的值为假,不执行循环体 { // 循环体开始

sum=sum+i; // 第一次累加后,sum的值为1

?n100 i++; } printf(\ return 0; }

例5.2 用do…while语句求:编写程序:

#include int main() {

int i=1,sum=0; do {

sum=sum+i; i++;

}while(i<=100); printf(\ return 0; }

// 加完后,i的值加1,为下次累加作准备 // 循环体结束

// 输出1+2+3?+100的累加和 1001+2+3+…+100,即 ?nn?1 例5.3 while和do---while循环的比较。 编写程序:

(1)用while循环 #include int main() {

int i,sum=0;

printf(\ scanf(\ while(i<=10) {

sum=sum+i; i++; };

printf(\ return 0; }

(2)用do?while循环 #include int main() {

int i,sum=0;

printf(\ scanf(\ do {

sum=sum+i; i++;

}while(i<=10);

printf(\ return 0; }

例5.4 在全系1000学生中,征集慈善募捐,当总数达到10万元时就结束,统计此时捐款的人数,以及平均每人捐款的数目。 编写程序:

#include #define SUM 100000 int main() {

float amount,aver,total; int i;

for (i=1,total=0;i<=1000;i++) {

printf(\ scanf(\

total= total+amount;

if (total>=SUM) break; }

aver=total/i;

printf(\ return 0; }

例5.5 要求输出100~200之间的不能被3整除的数。 编写程序:

#include int main() {int n;

for (n=100;n<=200;n++) {if (n%3==0) continue; printf(\ }

printf(\ return 0; }

例5.6 输出以下4*5的矩阵。 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 编写程序:

#include int main() {

int i,j,n=0;

for (i=1;i<=4;i++) for (j=1;j<=5;j++,n++) { if(n%5==0)printf(\ //控制在输出5个数据后换行 printf(\ }

printf(\ return 0; }

#include int main() {

int i,j,n=0;

for (i=1;i<=4;i++) for (j=1;j<=5;j++,n++) { if(n%5==0)printf(\ //控制在输出5个数据后换行 if (i==3 && j==1) break; //遇到第3行第1列,终止内循环 printf(\ }

printf(\ return 0; }

#include int main() {

int i,j,n=0;

for (i=1;i<=4;i++) for (j=1;j<=5;j++,n++) { if(n%5==0)printf(\ //控制在输出5个数据后换行 if (i==3 && j==1) continue; //遇到第3行第1列,提前结束执行本次内循环体 printf(\ }

printf(\ return 0; }


C语言谭浩强第四版例题(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:北京理工大学汇编上机试题和代码

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: