目录
1031 : 判断点在第几象限
题目描述
从键盘输入2个整数x、y值,表示平面上一个坐标点,判断该坐标点处于第几象限,并输出相应的结果。
输入
输入x,y值表示一个坐标点。坐标点不会处于x轴和y轴上,也不会在原点。
输出
输出对应的象限,用数字1,2,3,4分别对应四个象限。
样例输入
1 1
样例输出
1
C语言版
#include<stdio.h> // 包含标准输入输出库
int main() // 主函数
{
int x, y; // 定义两个整型变量x和y,用于存储用户输入的坐标值
scanf("%d%d", &x, &y); // 从用户输入中读取两个整数,分别存储到变量x和y中
// 判断点(x, y)所在的象限
if (x > 0 && y > 0) // 如果x和y都大于0
{
printf("1\n"); // 输出1,表示点在第一象限
}
else if (x < 0 && y > 0) // 如果x小于0且y大于0
{
printf("2\n"); // 输出2,表示点在第二象限
}
else if (x < 0 && y < 0) // 如果x和y都小于0
{
printf("3\n"); // 输出3,表示点在第三象限
}
else // 如果上述条件都不满足,即x大于0且y小于0
{
printf("4\n"); // 输出4,表示点在第四象限
}
return 0; // 程序正常结束
}
C++版
#include<iostream> // 包含标准输入输出流库
using namespace std; // 使用标准命名空间std
int main() // 主函数
{
int x, y; // 定义两个整型变量x和y,用于存储用户输入的坐标值
cin >> x >> y; // 从标准输入读取两个整数,分别存储到变量x和y中
// 判断点(x, y)所在的象限
if (x > 0 && y > 0) // 如果x和y都大于0
{
cout << "1" << endl; // 输出1,表示点在第一象限
}
else if (x < 0 && y > 0) // 如果x小于0且y大于0
{
cout << "2" << endl; // 输出2,表示点在第二象限
}
else if (x < 0 && y < 0) // 如果x和y都小于0
{
cout << "3" << endl; // 输出3,表示点在第三象限
}
else // 如果上述条件都不满足,即x大于0且y小于0
{
cout << "4" << endl; // 输出4,表示点在第四象限
}
return 0; // 程序正常结束
}
1032 : 员工薪水
题目描述
某公司规定,销售人员工资由基本工资和销售提成两部分组成,其中基本工资是1500元/月,销售提成规则如下:
销售额小于等于10000元时,按照5%提成;
销售额大于10000元但小于等于50000元时,超出10000部分按照3%提成;
销售额大于50000元时,超出50000部分按照2%提成。
编写程序,根据销售额计算员工收入。
输入
输入一个整数,表示销售额。
输出
输出员工的薪水,保留2位小数。
样例输入
30000
样例输出
2600.00
注意员工薪水要用浮点型变量(double)
C语言版
#include<stdio.h> // 包含标准输入输出库
#define base 1500 // 定义基本工资为1500
int main() // 主函数
{
int sail; // 定义一个整型变量sail,用于存储用户输入的销售额
scanf("%d", &sail); // 从用户输入中读取销售额,存储到变量sail中
double income; // 定义一个双精度浮点型变量income,用于存储计算后的收入
// 根据销售额计算收入
if (sail <= 10000) // 如果销售额小于或等于10000
{
income = base + sail * 0.05; // 收入 = 基本工资 + 销售额的5%
}
else if (sail <= 50000) // 如果销售额大于10000但小于或等于50000
{
income = base + 500 + (sail - 10000) * 0.03; // 收入 = 基本工资 + 10000的5% + 超过10000部分的3%
}
else // 如果销售额大于50000
{
income = base + 500 + 1200 + (sail - 50000) * 0.02; // 收入 = 基本工资 + 10000的5% + 40000的3% + 超过50000部分的2%
}
printf("%.2f", income); // 输出收入,保留两位小数
return 0; // 程序正常结束
}
C++版
#include<iostream> // 包含标准输入输出流库
#include<iomanip> // 包含输入输出流格式化库
using namespace std; // 使用标准命名空间std
#define av(y) setprecision(y) << fixed // 定义一个宏av,用于设置输出的小数精度
#define base 1500 // 定义基本工资为1500
int main() // 主函数
{
int sail; // 定义一个整型变量sail,用于存储用户输入的销售额
cin >> sail; // 从标准输入读取销售额,存储到变量sail中
double income; // 定义一个双精度浮点型变量income,用于存储计算后的收入
// 根据销售额计算收入
if (sail <= 10000) // 如果销售额小于或等于10000
{
income = base + sail * 0.05; // 收入 = 基本工资 + 销售额的5%
}
else if (sail <= 50000) // 如果销售额大于10000但小于或等于50000
{
income = base + 500 + (sail - 10000) * 0.03; // 收入 = 基本工资 + 10000的5% + 超过10000部分的3%
}
else // 如果销售额大于50000
{
income = base + 500 + 1200 + (sail - 50000) * 0.02; // 收入 = 基本工资 + 10000的5% + 40000的3% + 超过50000部分的2%
}
cout << av(2) << income << endl; // 使用宏av设置小数精度为2位,并输出收入
return 0; // 程序正常结束
}
1033 : 五级制成绩
题目描述
给定一个百分制成绩,请根据百分制成绩输出其对应的等级。转换关系如下:
90分以上为’A’,80~89为’B’, 70~79为’C’, 60~69为’D’,60分以下为’E’。输入
一个百分制成绩(0~100的整数)。
输出
输出对应的等级。
样例输入
100
样例输出
A
C语言版
#include<stdio.h> // 包含标准输入输出库
int main() // 主函数
{
int grade; // 定义一个整型变量grade,用于存储用户输入的分数
scanf("%d", &grade); // 从用户输入中读取一个整数,存储到变量grade中
// 根据分数评定成绩等级
if (grade < 60) // 如果分数小于60
{
printf("E\n"); // 输出等级E
}
else if (grade < 70) // 如果分数在60到69之间
{
printf("D\n"); // 输出等级D
}
else if (grade < 80) // 如果分数在70到79之间
{
printf("C\n"); // 输出等级C
}
else if (grade < 90) // 如果分数在80到89之间
{
printf("B\n"); // 输出等级B
}
else // 如果分数大于或等于90
{
printf("A\n"); // 输出等级A
}
return 0; // 程序正常结束
}
C++版
#include<iostream> // 包含标准输入输出流库
using namespace std; // 使用标准命名空间std
int main() // 主函数
{
int grade; // 定义一个整型变量grade,用于存储用户输入的分数
cin >> grade; // 从标准输入读取一个整数,存储到变量grade中
// 根据分数评定成绩等级
if (grade < 60) // 如果分数小于60
{
cout << "E" << endl; // 输出等级E
}
else if (grade < 70) // 如果分数在60到69之间
{
cout << "D" << endl; // 输出等级D
}
else if (grade < 80) // 如果分数在70到79之间
{
cout << "C" << endl; // 输出等级C
}
else if (grade < 90) // 如果分数在80到89之间
{
cout << "B" << endl; // 输出等级B
}
else // 如果分数大于或等于90
{
cout << "A" << endl; // 输出等级A
}
return 0; // 程序正常结束
}
1034 : 夏季促销
题目描述
商场夏季促销,购物500元以下,不打折;购物500元(含)以上,95折;购物1000元(含)以上,9折;购物3000元(含)以上,85折;购物5000元(含)以上,8折。根据消费金额,确定用户实际需要支付的数目。
输入
输入一个实数,表示消费金额。
输出
输出一个实数,表示用户实际需要支出的数目,保留两位小数。样例输入
5100
样例输出
4080.00
输入和数出为实数,要用浮点型变量(double)
C语言版
#include<stdio.h> // 包含标准输入输出库
int main() // 主函数
{
double spending, pay; // 定义两个双精度浮点型变量,分别用于存储消费金额和实际支付金额
scanf("%lf", &spending); // 从用户输入中读取消费金额,存储到变量spending中
// 根据消费金额计算实际支付金额
if (spending < 500) // 如果消费金额小于500
{
pay = spending; // 不打折,实际支付金额等于消费金额
}
else if (spending < 1000) // 如果消费金额在500到999之间
{
pay = spending * 0.95; // 打9.5折
}
else if (spending < 3000) // 如果消费金额在1000到2999之间
{
pay = spending * 0.9; // 打9折
}
else if (spending < 5000) // 如果消费金额在3000到4999之间
{
pay = spending * 0.85; // 打8.5折
}
else // 如果消费金额大于或等于5000
{
pay = spending * 0.8; // 打8折
}
printf("%.2f", pay); // 输出实际支付金额,保留两位小数
return 0; // 程序正常结束
}
C++版
#include<iostream> // 包含标准输入输出流库
#include<iomanip> // 包含输入输出流格式化库
using namespace std; // 使用标准命名空间std
#define av(y) setprecision(y) << fixed // 定义一个宏av,用于设置输出的小数精度
int main() // 主函数
{
double spending, pay; // 定义两个双精度浮点型变量,分别用于存储消费金额和实际支付金额
cin >> spending; // 从标准输入读取消费金额,存储到变量spending中
// 根据消费金额计算实际支付金额
if (spending < 500) // 如果消费金额小于500
{
pay = spending; // 不打折,实际支付金额等于消费金额
}
else if (spending < 1000) // 如果消费金额在500到999之间
{
pay = spending * 0.95; // 打9.5折
}
else if (spending < 3000) // 如果消费金额在1000到2999之间
{
pay = spending * 0.9; // 打9折
}
else if (spending < 5000) // 如果消费金额在3000到4999之间
{
pay = spending * 0.85; // 打8.5折
}
else // 如果消费金额大于或等于5000
{
pay = spending * 0.8; // 打8折
}
cout << av(2) << pay << endl; // 使用宏av设置小数精度为2位,并输出实际支付金额
return 0; // 程序正常结束
}
1035 : 分段函数求值
题目描述
已知:y是x的函数,
当x<-2时,y=7-2x;
当x>=-2,且x<3时,y=5-|3x+2|;
当x>=3时,y=3x+4输入
输入一个整数x。
输出
输出为一个整数,即x对应的函数值。样例输入
-4
样例输出
15
C语言版
#include<stdio.h> // 包含标准输入输出库
#include<math.h> // 包含数学库,用于计算绝对值
int main() // 主函数
{
int x, y; // 定义两个整型变量x和y,用于存储用户输入的值和计算结果
scanf("%d", &x); // 从用户输入中读取一个整数,存储到变量x中
// 根据x的取值范围计算y
if (x < -2) // 如果x小于-2
{
y = 7 - 2 * x; // 使用公式 y = 7 - 2x
}
else if (x < 3) // 如果x在-2到2之间(包括-2,不包括3)
{
y = 5 - fabs(3 * x + 2); // 使用公式 y = 5 - |3x + 2|,其中fabs计算绝对值
}
else // 如果x大于或等于3
{
y = 3 * x + 4; // 使用公式 y = 3x + 4
}
printf("%d\n", y); // 输出计算得到的y值
return 0; // 程序正常结束
}
C++版
#include<iostream> // 包含标准输入输出流库
#include<cmath> // 包含数学库,用于计算绝对值
using namespace std; // 使用标准命名空间std
int main() // 主函数
{
int x, y; // 定义两个整型变量x和y,用于存储用户输入的值和计算结果
cin >> x; // 从标准输入读取一个整数,存储到变量x中
// 根据x的取值范围计算y
if (x < -2) // 如果x小于-2
{
y = 7 - 2 * x; // 使用公式 y = 7 - 2x
}
else if (x < 3) // 如果x在-2到2之间(包括-2,不包括3)
{
y = 5 - fabs(3 * x + 2); // 使用公式 y = 5 - |3x + 2|,其中fabs计算绝对值
}
else // 如果x大于或等于3
{
y = 3 * x + 4; // 使用公式 y = 3x + 4
}
cout << y << endl; // 输出计算得到的y值
return 0; // 程序正常结束
}
1036 : 某年某月有多少天
题目描述
给你一个年份和月份,求该月有多少天。
输入
一个年份(正整数),一个月份(1-12),中间有一个空格隔开 。
输出
该月的天数,单独占一行。
样例输入
2012 2
样例输出
29
了解switch 语句:简要介绍switch的用法-优快云博客
C
#include<stdio.h>
#include<math.h>
int main()
{
int year, arr[13], month; // 定义变量:年份、月份、数组存储每月天数
scanf("%d%d", &year, &month); // 输入年份和月份
int flag = 0; // 定义一个标志变量,用于判断是否为闰年
// 判断是否为闰年
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
flag = 1; // 如果是闰年,flag 设置为 1
}
// 遍历月份,为每个月分配天数
for (int i = 1; i <= 12; i++)
{
switch (i) // 根据月份分配天数
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12: // 大月
arr[i] = 31; // 大月有 31 天
break;
case 4: case 6: case 9: case 11: // 小月
arr[i] = 30; // 小月有 30 天
break;
case 2: // 二月
if (flag == 1) // 如果是闰年
arr[2] = 29; // 闰年的二月有 29 天
else
arr[2] = 28; // 平年的二月有 28 天
}
}
// 输出输入月份的天数
printf("%d\n", arr[month]);
return 0; // 程序结束
}
C++
#include<iostream> // 引入输入输出流库
using namespace std; // 使用标准命名空间
int main()
{
int year, arr[13], month; // 定义变量:年份、月份和一个数组用于存储每个月的天数
scanf("%d%d", &year, &month); // 从标准输入读取年份和月份
int flag = 0; // 定义一个标志变量,用于判断是否为闰年
// 判断是否为闰年
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
flag = 1; // 如果是闰年,将标志变量设置为1
}
// 遍历1到12月,为每个月分配天数
for (int i = 1; i <= 12; i++)
{
switch (i) // 根据月份分配天数
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12: // 大月
arr[i] = 31; // 大月有31天
break;
case 4: case 6: case 9: case 11: // 小月
arr[i] = 30; // 小月有30天
break;
case 2: // 二月
if (flag == 1) // 如果是闰年
arr[2] = 29; // 闰年的二月有29天
else
arr[2] = 28; // 平年的二月有28天
}
}
// 输出输入月份的天数
printf("%d\n", arr[month]);
return 0; // 程序正常结束
}
1037 : 四则运算
题目描述
给你一个简单的四则运算表达式,包含两个实数和一个运算符,实数与运算符用空格隔开,请编程计算出结果。
输入
表达式的格式为:s1 op s2, s1和s2是两个实数,op表示的是运算符(+,-,*,/),也可能是其他字符。
输出
如果运算符合法,输出表达式的值;若运算符不合法或进行除法运算时除数是0(浮点类型的数绝对值小于1e-6,默认为0),则输出"Wrong input!"。最后结果小数点后保留两位。
Tips:
1e-6 表示 1×10⁻⁶,即 0.000001。
这是一种科学计数法的表示形式。
样例输入
1.0 + 1.0
样例输出
2.00
C
#include <stdio.h> // 引入标准输入输出库
#include <math.h> // 引入数学库,用于调用fabs函数
typedef long long i64; // 定义一个长整型的别名,但在此代码中并未使用
int main()
{
double s1, s2; // 定义两个操作数,类型为双精度浮点数
char op; // 定义一个字符变量,用于存储运算符
// 从标准输入读取两个操作数和一个运算符
// %lf 用于读取双精度浮点数,%c 用于读取字符
scanf("%lf %c %lf", &s1, &op, &s2);
// 使用switch语句根据运算符进行相应的运算
switch (op)
{
case '+': // 如果运算符是加号
printf("%.2f\n", s1 + s2); // 输出两个数的和,保留两位小数
break;
case '-': // 如果运算符是减号
printf("%.2f\n", s1 - s2); // 输出两个数的差,保留两位小数
break;
case '*': // 如果运算符是乘号
printf("%.2f\n", s1 * s2); // 输出两个数的乘积,保留两位小数
break;
case '/': // 如果运算符是除号
if (fabs(s2) < 1e-6) // 检查除数是否接近0(考虑浮点数精度问题)
printf("Wrong input!\n"); // 如果除数接近0,输出错误信息
else
printf("%.2f\n", s1 / s2); // 输出两个数的商,保留两位小数
break;
default: // 如果输入的运算符不是上述四种情况之一
printf("Wrong input!\n"); // 输出错误信息
break;
}
return 0; // 程序正常结束,返回0
}
C++
#include <iostream>
#include <algorithm>
#include <cmath> // 用于调用fabs函数
using namespace std;
int main()
{
double s1, s2; // 定义两个操作数
char op; // 定义运算符
// 从标准输入读取两个操作数和一个运算符
scanf("%lf %c %lf", &s1, &op, &s2);
// 根据运算符进行相应的运算
switch (op)
{
case '+': // 加法
printf("%.2f\n", s1 + s2); // 输出结果,保留两位小数
break;
case '-': // 减法
printf("%.2f\n", s1 - s2); // 输出结果,保留两位小数
break;
case '*': // 乘法
printf("%.2f\n", s1 * s2); // 输出结果,保留两位小数
break;
case '/': // 除法
if (fabs(s2) < 1e-6) // 检查除数是否为0(考虑浮点数精度问题)
printf("Wrong input!\n"); // 如果除数为0,输出错误信息
else
printf("%.2f\n", s1 / s2); // 输出结果,保留两位小数
break;
default: // 其他非法运算符
printf("Wrong input!\n"); // 输出错误信息
break;
}
return 0; // 程序正常结束
}
1038 : 绝对值最大
题目描述
输入3个整数,输出绝对值最大的那个数。
输入
输入包含3个int范围内的整数,用空格隔开。
输出
输出三个数中绝对值最大的数,单独占一行。若绝对值最大的数不唯一,则输出最先出现的那个。例如,若输入为1 -3 3,则输出为-3;若输入为1 3 -3则输出为3。
样例输入
1 2 -3
样例输出
-3
C
#include <stdio.h>
#include <stdlib.h> // 引入标准库,用于调用abs函数
#include<math.h>
int main()
{
int a, b, c, max; // 定义三个整数变量和一个用于存储最大值的变量
scanf("%d%d%d", &a, &b, &c); // 从标准输入读取三个整数
// 使用三元运算符简化逻辑
max = abs(a) >= abs(b) ? a : b; // 先比较a和b的绝对值,选择绝对值较大的数
max = abs(max) < abs(c) ? c : max; // 再将结果与c的绝对值比较,最终确定绝对值最大的数
printf("%d\n", max); // 输出绝对值最大的数
return 0; // 程序正常结束
}
C++
#include <iostream> // 引入输入输出流库
#include <cmath> // 引入数学库,用于调用abs函数
using namespace std;
int main()
{
int a, b, c, max; // 定义三个整数变量和一个用于存储最大值的变量
scanf("%d%d%d", &a, &b, &c); // 使用scanf从标准输入读取三个整数
// 先比较a和b的绝对值,选择绝对值较大的数
// 如果a的绝对值大于或等于b的绝对值,选择a;否则选择b
max = abs(a) >= abs(b) ? a : b;
// 再将max与c的绝对值比较,最终确定绝对值最大的数
// 如果c的绝对值大于max的绝对值,更新max为c;否则保持max不变
max = abs(max) < abs(c) ? c : max;
// 输出绝对值最大的数
printf("%d\n", max); // 使用printf输出结果
return 0; // 程序正常结束
}
1039 : n个数求和
题目描述
输入一个整数n和n个整数,输出这n个整数的和。
输入
输入有两行:第一行是一个正整数n,第二行是n个整数
输出
输出一个整数,即n个数的和。输出单独占一行。
样例输入
3
7 3 2样例输出
12
C
#include <stdio.h> // 引入标准输入输出库
int main()
{
int n, mid, sum = 0; // 定义变量
// n: 用于存储用户输入的整数个数
// mid: 用于临时存储每次输入的整数
// sum: 用于存储总和,初始化为0
scanf("%d", &n); // 从标准输入读取一个整数n,表示接下来要输入的整数个数
// 使用for循环读取n个整数
for (int i = 0; i < n; i++) // 循环n次
{
scanf("%d", &mid); // 每次循环读取一个整数,存储到mid中
sum += mid; // 将mid的值加到sum中
}
printf("%d\n", sum); // 输出总和
return 0; // 程序正常结束
}
C++
#include <iostream> // 引入输入输出流库
using namespace std;
int main()
{
int n, mid, sum = 0; // 定义变量
// n: 用于存储用户输入的整数个数
// mid: 用于临时存储每次输入的整数
// sum: 用于存储总和,初始化为0
scanf("%d", &n); // 使用scanf从标准输入读取一个整数n,表示接下来要输入的整数个数
// 使用for循环读取n个整数
for (int i = 0; i < n; i++) // 循环n次
{
scanf("%d", &mid); // 每次循环读取一个整数,存储到mid中
sum += mid; // 将mid的值加到sum中
}
printf("%d\n", sum); // 使用printf输出总和
return 0; // 程序正常结束
}
1040 : 数列求和1
题目描述
输入一个整数n,输出数列1+1/3+1/5+……前n项的和。
输入
输入只有一个正整数n。
输出
结果保留2位小数,单独占一行
样例输入
3
样例输出
1.53
注意:前n项和用double变量
C
#include <stdio.h> // 引入标准输入输出库
int main()
{
int n; // 定义一个整数变量,用于存储用户输入的项数
double sum = 0; // 定义一个双精度浮点数变量,用于存储数列的和,初始化为0
scanf("%d", &n); // 从标准输入读取一个整数n,表示数列的项数
// 使用for循环计算数列的和
for (int i = 1; i <= n; i++) // 循环n次
{
sum += 1.0 / (2 * i - 1); // 计算每一项1/(2i-1)并累加到sum中
}
printf("%.2f\n", sum); // 输出数列的和,保留两位小数
return 0; // 程序正常结束
}
C++
#include <iostream> // 引入输入输出流库
using namespace std;
int main()
{
int n; // 定义一个整数变量,用于存储用户输入的项数
double sum = 0; // 定义一个双精度浮点数变量,用于存储数列的和,初始化为0
// 从标准输入读取一个整数n,表示数列的项数
scanf("%d", &n);
// 使用for循环计算数列的和
for (int i = 1; i <= n; i++) // 循环n次,从1到n
{
// 计算每一项1/(2i-1)并累加到sum中
// 2i-1生成奇数序列:1, 3, 5, ..., 2n-1
sum += 1.0 / (2 * i - 1);
}
// 输出数列的和,保留两位小数
printf("%.2f\n", sum);
return 0; // 程序正常结束
}