目录
计算个人所得税
输出三角形面积和周长
三天打鱼两天晒网
查询水果价格
两个数的简单计算器
统计字符
输出闰年
统计学生成绩
计算个人所得税
假设个人所得税为:税率×(工资−1600)。请编写程序计算应缴的所得税,其中税率定义为:
输入在一行中给出非负工资。
在一行输出个人所得税,精确到小数点后2位。
1600
0.00
1601
0.05
3000
140.00
4000
360.00
5000
680.00
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int n = 0;
float fm;
scanf("%d", &n);
if (n <= 1600)
fm = 0;
else if (n > 1600 && n <= 2500)
fm = 0.05 * (n - 1600);
else if (n > 2500 && n <= 3500)
fm = 0.1 * (n - 1600);
else if (n > 3500 && n <= 4500)
fm = 0.15 * (n - 1600);
else
fm = 0.2 * (n - 1600);
printf("%.2f", fm);
return 0;
}
输出三角形面积和周长
本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:area=s(s−a)(s−b)(s−c),其中s=(a+b+c)/2。
输入为3个正整数,分别代表三角形的3条边a、b、c。
如果输入的边能构成一个三角形,则在一行内,按照
area = 面积; perimeter = 周长
的格式输出,保留两位小数。否则,输出
These sides do not correspond to a valid triangle
5 5 3
area = 7.15; perimeter = 13.00
1 4 1
These sides do not correspond to a valid triangle
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include //添加数学函数库
int main()
{
int a=0, b=0, c=0;
double s,area, perimeter;
scanf("%d %d %d", &a, &b, &c);
s = (a + b + c) / 2.0;
if (a + b > c && a + c > b && b + c > a)
{
area = sqrt(s*(s - a) * (s - b) * (s - c));
perimeter = a+b+c;
printf("area = %.2lf; perimeter = %.2lf", area,perimeter);
}
else
{
printf("These sides do not correspond to a valid triangle");
}
return 0;
}
三天打鱼两天晒网
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
输入在一行中给出一个不超过1000的正整数N。
在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。
103
Fishing in day 103
34
Drying in day 34
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include
//#include //添加数学函数库
int main()
{
int day,fd;
scanf("%d", &day);
fd = day % 5;
if (fd <= 3&&fd>0)
//dayu
printf("Fishing in day %d",day);
else
{
//shaiwang
printf("Drying in day 34", day);
}
return 0;
}
查询水果价格
给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。
首先在屏幕上显示以下菜单:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。
输入在一行中给出用户连续输入的若干个编号。
首先在屏幕上显示菜单。然后对应用户的每个输入,在一行中按格式“price = 价格”输出查询结果,其中价格保留两位小数。当用户连续查询次数超过5次、或主动输入0时,程序结束。
3 -1 0 2
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 4.10
price = 0.00
1 2 3 3 4 4 5 6 7 8
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 3.00
price = 2.50
price = 4.10
price = 4.10
price = 10.20
#define _CRT_SECURE_NO_WARNINGS 1
#include
//#include //添加数学函数库
int main()
{
int n=0;
double price;
printf("[1] apple\n");
printf("[2] pear\n");
printf("[3] orange\n");
printf("[4] grape\n");
printf("[0] exit\n");
for (int i = 0; i < 5; i++)
{
scanf("%d", &n);
switch (n)
{
case 0:break;
case 1:price = 3.00; break;
case 2:price = 2.50; break;
case 3:price = 4.10; break;
case 4:price = 10.20; break;
default:price = 0; break;
}
printf("price = %.2lf", price);
}
return 0;
}
两个数的简单计算器
本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。
输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。
当运算符为+
、-
、*
、/
、%
时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR
。
-7 / 2
-3
3 & 6
ERROR
#define _CRT_SECURE_NO_WARNINGS 1
#include
//#include //添加数学函数库
int main()
{
int num1, num2,num=0;
char mat;
scanf("%d %c %d",&num1,&mat,&num2);
if (mat == '+')
{
num = num1 + num2; printf("%d\n", num);
}
else if (mat == '-')
{
num = num1 - num2; printf("%d\n", num);
}
else if (mat == '*')
{
num = num1 * num2; printf("%d\n", num);
}
else if (mat == '/')
{
num = num1 / num2; printf("%d\n", num);
}
else if (mat == '%')
{
num = num % num2; printf("%d\n", num);
}
else
printf("ERROR\n");
//printf("%d\n", num);
return 0;
}
统计字符
本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
输入为10个字符。最后一个回车表示输入结束,不算在内。
在一行内按照
letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。
aZ &
09 Az
letter = 4, blank = 3, digit = 2, other = 1
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
//#include //添加数学函数库
int main()
{
char ch;
int letter=0,blank=0,digit=0,other=0;
for (int i = 0; i < 10; i++)
{
ch = getchar();
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
letter++;
else if (ch == ' ' || ch == '\n')
blank++;
else if (ch >= '0' && ch <='9')
digit++;
else
other++;
}
printf("letter = %d, blank = %d, digit = %d, other = %d", letter, blank, digit, other);
return 0;
}
输出闰年
输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。
输入在一行中给出21世纪的某个截止年份。
逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非21世纪的年份则输出"Invalid year!"。若不存在任何闰年,则输出“None”。
2048
2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048
2000
Invalid year!
#define _CRT_SECURE_NO_WARNINGS 1
#include
//#include
//#include //添加数学函数库
int main()
{
int n = 0;
scanf("%d", &n);
if (n <= 2000 || n > 3000)
printf("Inalid year!");
else if (n < 2004 && n>2000)
printf("None");
else
{
for (int i = 2004; i <= n; i += 4)
{
if (i % 100 == 0 && i % 400 != 0)
continue;
printf("%d\n", i);
}
}
return 0;
}
统计学生成绩
本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。
7
77 54 92 73 60 65 69
1 0 2 3 1
#define _CRT_SECURE_NO_WARNINGS 1
#include
//#include
//#include //添加数学函数库
int main()
{
int n=0,grade=0,A=0,B=0,C=0,D=0,E=0;
scanf("%d", &n);
//grade = getchar();
for (int i = 0; i < n; i++)
{
scanf("%d", &grade);
//grade = getchar();
if (grade >= 90)
A++;
else if (grade >= 80 && grade < 90)
B++;
else if (grade >= 70 && grade < 80)
C++;
else if (grade >= 60 && grade < 70)
D++;
else
E++;
}
printf("%d %d %d %d %d", A, B, C, D, E);
return 0;
}