【学习记录】第二次实验课作业

实验二 选择结构

编程题

1. if双分支结构简单应用

【问题描述】

输入一个整数,如果输入的数是偶数或者负数,则输出其平方,否则输出其一半的值。

【输入形式】

整型数据

【输出形式】

整型数据

【样例输入】

7

【样例输出】

3

【样例说明】

【评分标准】

正确性

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() 
{
	int n, s, h;
	scanf("%d", &n);	
	s = n * n;
	h = n / 2;
	if ((n <= 0) || !(n % 2))
		printf("%d", s);
	else
		printf("%d", h);
	return 0;
}

2. 商品优惠计算器

【问题描述】

使用if语句编程实现输入购货金额,输出实际付款金额。购货折扣率如下:

购货金额≤500元 不打折

500元<购货金额≤1000元 9折

1000元<购货金额 8折

【输入形式】

一个浮点数

【输出形式】

一个浮点数(保留小数点后两位)

【样例输入】

500.01

【样例输出】

450.01

【样例说明】


【评分标准】

正确性

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
	float s1, s2;
	scanf("%f", &s1);
	if (s1 <= 500)
		s2 = s1;
	else if (s1 <= 1000)
		s2 = s1 * 0.9;
	else
		s2 = s1 * 0.8;
	printf("%.2f", s2);
	return 0;
}

3. 比较大小并求和

【问题描述】

输入4个整数,求其前两个数中较小的数与后两个数中较大的数之和。

【输入形式】

输入4个整数,每两个整数之间用逗号分隔

【输出形式】

输出1个整数

【样例输入】

3,2,1,4

【样例输出】

6

【样例说明】

【评分标准】

正确性

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
	int a1, a2, b1, b2, m, n, a;
	scanf("%d,%d,%d,%d", &a1, &a2, &b1, &b2);
	if (a1 >= a2)
		m = a2;
	else
		m = a1;
	if (b1 >= b2)
		n = b1;
	else
		n = b2;
	a = m + n;
	printf("%d", a);
	return 0;
}

4. 电费计算器

【问题描述】

一个电表按照如下的比率计费:

前200度电:每度0.8元;

后100度电:每度0.9元;

超过300度电:每度1元。

所有用户都是按最少100元进行收费。如果总费用大于400元,还要加收总数的15%的费用。请编写程序,从键盘输入用电量,经过计算后输出显示应收电费。


【输入形式】

一个整数,为用电量

【输出形式】

一个浮点数(保留小数点后两位),为应收电费

【样例输入】

100

【样例输出】

100.00

【样例说明】

【评分标准】

正确性

#include <stdio.h>
int main(void)
{
	int q;
	float w;
	scanf("%d", &q);
	if (q <= 125)
		w = 100;
	else if (q <= 200)
		w = q * 0.8;
	else if (q <= 300)
		w = 160 + 0.9 * (q - 200);
	else
	{
		w = 250 + (q - 300);
		if (q > 450)
			w += (w * 0.15);
	}
	printf("%.2f\n", w);
	return 0;
}

5. 数字转换单词

【问题描述】

编写一个程序,要求用户输入一个两位数,然后输出显示该数的英文单词。提示:把数分解为两个数字。用一个switch语句显示第一位数字对应的单词(“twenty”、“thirty”等),用第二个switch语句显示第二位数字对应的单词。不要忘记11~19需要特殊处理。

【输入形式】

一个十进制两位整数

【输出形式】

输入的整数所对应的英文单词(所含字母均小写)

【样例输入】

85

【样例输出】

eighty-five

【样例说明】

【评分标准】

正确性

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
	int n, g, s;
	scanf("%d", &n);
	if (n < 10 || n > 99)
		printf("error\n");
	g = n % 10;                /*个位数字*/
	s = n / 10;                /*十位数字*/
	if (s == 1)
		switch (g)             /*11-19的特殊情况,通过嵌套解决*/
		{
		case 1:printf("eleven\n"); break;
		case 2:printf("twelve\n"); break;
		case 3:printf("thirteen\n"); break;
		case 4:printf("fourteen\n"); break;
		case 5:printf("fifteen\n"); break;
		case 6:printf("sixteen\n"); break;
		case 7:printf("seventeen\n"); break;
		case 8:printf("eighteen\n"); break;
		case 9:printf("nineteen\n"); break;
		default:printf("ten\n");
			break;
		}
	else
	{

		switch (s)                 /*确定十位*/
		{
		case 2:printf("twenty"); break;
		case 3:printf("thirty"); break;
		case 4:printf("forty"); break;
		case 5:printf("fifty"); break;
		case 6:printf("sixty"); break;
		case 7:printf("thirty"); break;
		case 8:printf("eighty"); break;
		default:printf("ninety");
			break;
		}

		switch (g)                    /*确定个位*/
		{
		case 1:printf("-one\n"); break;
		case 2:printf("-two\n"); break;
		case 3:printf("-three\n"); break;
		case 4:printf("-four\n"); break;
		case 5:printf("-five\n"); break;
		case 6:printf("-six\n"); break;
		case 7:printf("-seven\n"); break;
		case 8:printf("-eight\n"); break;
		default:printf("-nine\n"); 
			break;
		}
	}
	return 0;
}

总结:

  1. 善用“%”——取余符号判断奇偶数;
  2. 熟悉if的多分支判断语句执行规则;  
  3. 第四题运用了if语句的嵌套结构;
  4. 不要把“=”赋值符当等于!!!
  5. 运用了if与switch间的嵌套;
  6. 不要在switch语句结尾加多余的“;”!!!!!
  7. 代码越来越复杂,需要逐步养成写注释的习惯。
  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值