安徽机电职业技术学院实验报告
实验四 分支程序设计(if语句)
班级 |
软件3161 |
日期 |
2016.11.3 |
备注 |
学号 |
1103163004 |
姓名 |
王凯 |
|
成绩 |
|
1.(1)从键盘任意输入四个int类型的整数,要求将其中的最大数输出。
#include "stdio.h"
main()
{
int a,b,c,d,max;
scanf("%d%d%d%d",&a,&b,&c,&d);
max=a;
if(max<b)max=b;
if(max<c)max=c;
if(max<d)max=d;
printf("%d",max);
}
2.从键盘任意输入四个int类型的整数,要求将它们按从小到大的顺序输出。
#include "stdio.h"
main()
{
int a,b,c,d,t;
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b)
{
t=a;a=b;b=t;
}
if(a>c)
{
t=a;a=c;c=t;
}
if(a>d)
{
t=a;a=d;d=t;
}
if(b>c)
{
t=b;b=c;c=t;
}
if(b>d)
{
t=b;b=d;d=t;
}
if(c>d)
{
t=c;c=d;d=t;
}
printf("%d%d%d%d",a,b,c,d);
}
3.某商场给顾客购物的折扣率如下:
购物金额 < 300元, 不打折
300元 ≤ 购物金额 < 500元 9折
500元 ≤ 购物金额 < 800元 7折
800元 ≤ 购物金额 5折
要求输入一个购物金额(x),输出打折率(rate)以及购物实际付款金额(x * rate)
#include "stdio.h"
main()
{
float a;
printf("请输入您的购物金额! ");
scanf("%f",&a);
if(a>0)
{
if(a<300)printf("您的购物金额为%.2f 没有打折优惠! 实际付款为%.1f",a,a);
if(a>=300&&a<500)printf("您的购物金额为%.2f 有打9折优惠! 实际付款为%.1f",a,a*0.9);
if(a>=500&&a<800)printf("您的购物金额为%.2f 有打7折优惠! 实际付款为%.1f",a,a*0.7);
if(a>=800)printf("您的购物金额为%.2f 有打5折优惠! 实际付款为%.1f",a,a*0.5);
}
else
printf("您输入的购物金额有误!");
}
三、思考与练习
1、比较上机验证题中的源程序一和源程序二,为什么会产生不同和的运行结果?
因为else 是与它最近的if匹配 (1)里面的else 是当a<b&&b>=0时才会执行,a>b直接执行下一条语句printf所以结果是2 (2)里面的if被{}包含,{}就是一个包含语句的符号。所以else 只能与第一个if匹配,所以结果是3.
2、比较上机验证题中的源程序七和源程序八,为什么会产生不同和的运行结果?
因为(7)if里面的==符号是一种判断符号判断左边和右边是否相等 无误,所以输出结果。
(8)if是一种判断语句,条件必须是判断符号 而‘=’表示赋值,语句的意思就变为如果把右边赋值給左边。表示逻辑不通,所以执行错误!
3、分析以下程序段的功能是什么?试补充完整程序并验证程序的运行结果。
scanf(“%d%d”, &a,&b);
printf ( " %d + %d = ", a, b );
scanf ( "%d", &c );
if ( c == a +b ) printf (" GOOD !" );
else printf ( "WONG! ");
功能是输入两个数,屏幕输出这两个数的加数,然后输入答案,系统判断正确。
#include "stdio.h"
main()
{
int a,b,c;
printf("请输入两位整数! ");
scanf("%d%d",&a,&b);
printf(" %d+%d=",a,b);
scanf ("%d",&c);
if (c==a+b)printf (" GOOD !" );
else printf ( "WONG! ");
}