湖南中医药大学OJ—1150到1159

2023-10-13 17:40

本文主要是介绍湖南中医药大学OJ—1150到1159,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

    • 1150: 习题4-6 分段函数求值
    • 1151: 习题4-8-1 百分制成绩转换为等级
    • 1152: 习题4-8-2 百分制成绩转换为等级
    • 1153: 习题4-9-1 判断正整数位数
    • 1154: 习题4-9-2 求正整数各位上的数字
    • 1155: 习题4-9-3 逆序输出正整数各位上数字
    • 1156: 习题4-10-1 奖金计算
    • 1157: 习题4-10-2 奖金计算
    • 1158: 习题4-11 4个整数从小到大输出
    • 1159: 习题4-12 求建筑物高度

1150: 习题4-6 分段函数求值

题目描述
有一个函数y=f(x)的表达式如下:
当x<1时,y=x
当1<=x<10时,y=2x-1
当x>=10时,y=3x-11
输入x的值,输出y相应的值。
末尾换行。
输入:
一个实数
输出:
y=计算的结果,保留2位小数,注意末尾换行。

样例输入 Copy
5.1
样例输出 Copy
y=9.20

根据规则编写判断条件

#include<stdio.h>
#include<string.h>
#include<math.h>
#define PI 3.14
int main()
{float x,y;scanf("%f",&x);if(x<1)  y=x;else if(1<=x&&x<10)y=2*x-1;else if(x>=10)y=3*x-11;printf("y=%.2f\n",y);//printf("%d\n",y);return 0;
}

1151: 习题4-8-1 百分制成绩转换为等级

题目描述
从键盘输入一百分制成绩,要求输出其所对应的等级’A’, ‘B’, ‘C’, ‘D’。85分以上(含)为’A’,7084分之间为’B’,6069分之间为’C’,60分以下为’D’。
请用if语句实现。
输入
百分制成绩,保证成绩在0~100之间。
输出
百分制成绩所对应的等级,末尾输出换行。

样例输入 Copy
73
样例输出 Copy
B

#include<stdio.h>
#include<string.h>
#include<math.h>
#define PI 3.14
int main()
{int x;scanf("%d",&x);if(x>=85)printf("A\n");if(x>=70&&x<85)printf("B\n");if(x>=60&&x<70)printf("C\n");if(x<60)printf("D\n");//printf("%d\n",y);return 0;
}

1152: 习题4-8-2 百分制成绩转换为等级

题目描述
从键盘输入一百分制成绩,要求输出其所对应的等级’A’, ‘B’, ‘C’, ‘D’。85分以上(含)为’A’,7084分之间为’B’,6069分之间为’C’,60分以下为’D’。
请用switch语句实现。
输入
一百分制成绩
输出
百分制成绩所对应的等级,末尾换行。

样例输入 Copy
73
样例输出 Copy
B

下面的程序是错误示范
没有考虑到84分的条件应该是B等级

#include<stdio.h>
#include<string.h>
#include<math.h>
#define PI 3.14
int main()
{int x,y;scanf("%d",&x);y=x/10;switch(y){case 10:case 9:case 8:printf("A\n");break;case 7:printf("B\n");break;case 6:printf("C\n");break;default:printf("D\n");}//printf("%d\n",y);return 0;
}

正确操作

#include<stdio.h>
#include<string.h>
#include<math.h>
#define PI 3.14
int main()
{int x,y;scanf("%d",&x);y=x/10;if(x%10<5&&x>80)//仅针对于85这个分数做处理y -= 1;switch(y){case 10:case 9:case 8:printf("A\n");break;//85以上case 7:printf("B\n");break;//84-70case 6:printf("C\n");break;//79-60default:printf("D\n");//60以下}//printf("%d\n",y);return 0;
}

1153: 习题4-9-1 判断正整数位数

题目描述
给定一个不多于5位的正整数,判断它是几位数,并将该数字输出。输出结束后换行。
注意:输入的数字要确保是一个不多于5位的正整数。
输入:
一个不多于5位的正整数。
输出:
输入正整数的位数,注意末尾的换行。

样例输入 Copy
1234
样例输出 Copy
4

一个数对10取余就是取得这个数的最后一位数字
一个数除10就是取得去掉这个数的最后一位后,剩下的数字

#include<stdio.h>
#include<string.h>
#include<math.h>
#define PI 3.14
int main()
{int x,y,a=0;scanf("%d",&x);while(x>0){x/=10;a++;}printf("%d\n",a);     //printf("%d\n",y);return 0;
}

1154: 习题4-9-2 求正整数各位上的数字

题目描述
输入一个不多于5位的正整数,按高位到低位的顺序输出各位上的数字,末尾换行。
注意:确保输入的正整数的位数不多于5。
输入:
一个不多于5位的正整数
输出:
从高位到低位依次输出各位上的数字,中间以空格分隔的。
注意末尾的换行。

样例输入 Copy
2143
样例输出 Copy
2 1 4 3

就是对上面那道题中提到的对10取余和除10操作的练习

#include<stdio.h> 
int main() 
{ int a,g,s,b,q,w; scanf("%d",&a); w=a/10000; q=a/1000%10; b=a/100%10; s=a/10%10; g=a%10; if(w!=0) printf("%d %d %d %d %d\n",w,q,b,s,g) ; else if(q!=0) printf("%d %d %d %d\n",q,b,s,g) ; else if(b!=0) printf("%d %d %d\n",b,s,g) ; else if(s!=0) printf("%d %d\n",s,g) ; else printf("%d\n",g) ; 
}

1155: 习题4-9-3 逆序输出正整数各位上数字

题目描述
输入一个不多于5位的正整数,按逆序输出各位上的数字,末尾换行。
注意:确保输入的正整数的位数不多于5。
输入:
一个不多于5位的正整数。
输出:
逆序输出各位上的数字,中间以空格分隔。
注意末尾的换行。

样例输入 Copy
2143
样例输出 Copy
3 4 1 2

#include<stdio.h> 
int main() 
{ int a,g,s,b,q,w; scanf("%d",&a); w=a/10000; q=a/1000%10; b=a/100%10; s=a/10%10; g=a%10; if(w!=0) printf("%d %d %d %d %d\n",g,s,b,q,w) ;else if(q!=0) printf("%d %d %d %d\n",g,s,b,q) ; else if(b!=0) printf("%d %d %d\n",g,s,b) ; else if(s!=0) printf("%d %d\n",g,s) ;else printf("%d\n",g) ;}

1156: 习题4-10-1 奖金计算

题目描述
某企业发放的奖金根据利润提成。利润I低于或等于100000时,奖金可提10%;利润高于100000元,低于200000元(100000<I<=200000)时,低于100000元的部分仍按10%提成,高于100000元的部分提成比例为7.5%;200000<I<=400000时,低于200000元的部分仍按上述方法提成(下同),高于200000元的部分按5%提成;400000<I<=600000元时,高于400000元的部分按3%提成;600000<I<=1000000时,高于600000元的部分按1.5%提成;I>1000000元时,超过1000000元的部分按1%提成。
从键盘输出当月利润I,求应发奖金数,奖金精确到分。
要求用if语句实现。
输入:
企业利润,小数,双精度double类型
输出:
应发奖金数,保留2位小数,末尾换行。

样例输入 Copy
1050
样例输出 Copy
105.00

耐心走完题目,其实不难,主要是繁杂

#include <stdio.h>int main()
{double a,b,c,d,i;scanf("%lf",&i);if(i<=100000)a=i*0.1;else if(i>100000&&i<=200000)a=(i-100000)*0.075+100000*0.1;else if(i>200000&&i<=400000)a=(i-200000)*0.05+200000*0.1;else if(i>400000&&i<=600000)a=(i-400000)*0.03+400000*0.1;else if(i>600000&&i<=1000000)a=(i-600000)*0.015+600000*0.1;else if(i>1000000)a=(i-1000000)*0.01+1000000*0.1;printf("%.2lf\n",a); return 0;
}

1157: 习题4-10-2 奖金计算

题目描述
某企业发放的奖金根据利润提成。利润I低于或等于100000时,奖金可提10%;利润高于100000元,低于200000元(100000<I<=200000)时,低于100000元的部分仍按10%提成,高于100000元的部分提成比例为7.5%;200000<I<=400000时,低于200000元的部分仍按上述方法提成(下同),高于200000元的部分按5%提成;400000<I<=600000元时,高于400000元的部分按3%提成;600000<I<=1000000时,高于600000元的部分按1.5%提成;I>1000000元时,超过1000000元的部分按1%提成。
从键盘输出当月利润I,求应发奖金数,奖金精确到分。
要求用switch语句实现。
输入:
企业当月利润,小数,双精度double类型
输出:
应发奖金,精确到小数点后2位,末尾换行。

样例输入 Copy
1050
样例输出 Copy
105.00

#include <stdio.h>int main()
{double a,c,d,i;int b;scanf("%lf",&i);b=i/100000;switch(b){case 0: a=i*0.1;break;case 1: a=(i-100000)*0.075+100000*0.1;break;case 2: case 3: a=(i-200000)*0.05+200000*0.1;break;case 4: case 5:a=(i-400000)*0.03+400000*0.1;break;case 6:case 7:case 8:case 9:a=(i-600000)*0.015+600000*0.1;break;default:a=(i-1000000)*0.01+1000000*0.1;break;}printf("%.2lf\n",a);return 0;
}

1158: 习题4-11 4个整数从小到大输出

题目描述
从键盘输入4个整数,要求按照由小到大的顺序输出,末尾换行。
输入
以空格分隔的四个整数。
输出
从小到大输出这4个整数,中间以空格分隔,末尾换行。

样例输入 Copy
10 7 -2 9
样例输出 Copy
-2 7 9 10

循环的嵌套

#include <stdio.h>int main()
{int a[4],i,j,t;for(i=0;i<4;i++)scanf("%d",&a[i]);for(j=0;j<4;j++){for(i=0;i<3;i++){if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}}}for(i=0;i<4;i++){printf("%d ",a[i]);}printf("\n");return 0;
}

1159: 习题4-12 求建筑物高度

题目描述
有4个圆塔,圆心分别为(2, 2)、(-2, 2)、(-2, -2)、(2, -2),圆半径为1,如下图所示。这4个塔的高度为10米(m),塔以外无建筑物。
在这里插入图片描述
现输入任一点的坐标,求该点的建筑物高度(塔外的高度为零)。
输入
输入以圆括号括起来的两个数字,两个数字之间以逗号(,)分隔,格式如:(x,y)
如下为正确输入:
(1.5,1.9)
浮点型变量,请定义为float类型。
输出
该建筑物的高度,末尾换行。

样例输入 Copy
(1.8,1.9)
样例输出 Copy
10

简单函数pow和sqrt的使用

include <stdio.h>
#include <math.h>
int main()
{float x,y,a,b,c;int h;scanf("(%f,%f)",&x,&y);a=sqrt(x*x);b=sqrt(y*y);c=pow((a-2),2)+pow((b-2),2);if(sqrt(c)<=1)h=10;printf("%d",h); printf("\n");   return 0;
}

这篇关于湖南中医药大学OJ—1150到1159的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/204847

相关文章

哈理工OJ 2179(深搜)

组合 Time Limit: 1000 MSMemory Limit: 32768 K Total Submit: 7(5 users)Total Accepted: 6(5 users)Rating: Special Judge: No Description 给出一个正整数N,从集合{1,2,3..N} 中找出所有大小为k的子集, 并按照字典序从小到大输出。 Input 第一行是一个整

每日OJ_牛客_求和(递归深搜)

目录 牛客_求和(递归深搜) 解析代码 牛客_求和(递归深搜) 求和_好未来笔试题_牛客网 解析代码         递归中每次累加一个新的数,如果累加和大于等于目标,结束递归。此时如果累加和正好等于目标,则打印组合。向上回退搜索其它组合。此题本身就是一个搜索的过程,找到所有的组合。 #include <iostream>#include <cmath>#in

OJ-0905

题目 示例1: 输入:10 10 56 34 99 1 87 8 99 3 255 6 99 5 255 4 99 7 255 2 99 9 255 213 4输出:99 示例2: 输入:10 10 255 34 0 1 255 8 0 3 255 6 0 5 255 4 0 7 255 2 0 9 255 213 5输出:255 import java.util.

每日OJ_牛客_Emacs计算器(逆波兰表达式)

目录 牛客_Emacs计算器(逆波兰表达式) 解析代码 牛客_Emacs计算器(逆波兰表达式) Emacs计算器__牛客网 解析代码 逆波兰表达式(后缀表达式)求值,需要借助栈,思路: 循环输入,获取逆波兰表达式,然后进行以下补助,直到测试完所有的测试用例: 遇到数字字符串,将该数字字符串转化为数字然后入栈。遇到操作符时,从栈顶取两个数字,然后进行该运算符所对应运算

西北工业大学oj题-兔子生崽

题目描述: 兔子生崽问题。假设一对小兔的成熟期是一个月,即一个月可长成成兔,每对成兔每个月可以生一对小兔,一对新生的小兔从第二个月起就开始生兔子,试问从一对兔子开始繁殖,一年以后可有多少对兔子? 这道题目一眼看过去就是典型的递归问题,代码如下 public class RabbitReproduction {public static void main(String[] args) {in

★ 算法OJ题 ★ 力扣209 - 长度最小的子数组

Ciallo~(∠・ω< )⌒☆ ~ 今天,简将和大家一起做一道滑动窗口算法题--长度最小的子数组~ 目录 一  题目 二  算法解析 解法⼀:暴力求解 解法二:滑动窗口 三  编写算法 一  题目 209. 长度最小的子数组 - 力扣(LeetCode) 二  算法解析 解法⼀:暴力求解 算法思路: 从前往后枚举数组中的任意⼀个元素,把它当成起始位置

OJ-0903

题目 示例1 输入:30 12 25 8 19输出:15 示例2 输入:10 12 25 8 19 8 6 4 17 19 20 30输出:-1 题解 import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Main {public static

【负载均衡式在线OJ】Compile_server 模块

文章目录 程序源码compile_server整体思路编译(compile.hpp)运行模块编译运行模块编译运行服务 程序源码 https://gitee.com/not-a-stupid-child/online-judge compile_server 整体思路 这个服务要对oj_server 发送过来的代码进行编译和运行,最后把结果返回给oj_server。 所以我

★ 算法OJ题 ★ 力扣18 - 四数之和

Ciallo~(∠・ω< )⌒☆ ~ 今天,爱丽速子将和大家一起做一道双指针算法题--四数之和~ 目录 一  题目 二  算法解析 三  编写算法  做此题前最好先看一下前两篇博客~: ★ 算法OJ题 ★ 力扣 LCR179 - 和为 s 的两个数字-CSDN博客 ★ 算法OJ题 ★ 力扣15 - 三数之和-CSDN博客 一  题目 18. 四数之和 - 力扣(Lee

oj生成数据

首先先写一个生成test.in的代码,利用随机数生成测试数据。 按照格式生成测试数就行   转载:https://blog.csdn.net/qq_29980371/article/details/72825443 #include <bits/stdc++.h>using namespace std;int main(){freopen("test.in","w",stdout);