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;
}
总结:
- 善用“%”——取余符号判断奇偶数;
- 熟悉if的多分支判断语句执行规则;
- 第四题运用了if语句的嵌套结构;
- 不要把“=”赋值符当等于!!!
- 运用了if与switch间的嵌套;
- 不要在switch语句结尾加多余的“;”!!!!!
- 代码越来越复杂,需要逐步养成写注释的习惯。