【1.5日计划】(acwing语法基础课)1.2判断语句

668当时多思考了一会儿,其他问题不大

例题

665. 倍数

读取两个正整数值 AA 和 BB。

如果其中一个是另一个的整数倍,则输出 Sao Multiplos,否则输出 Nao sao Multiplos

输入格式

共一行,两个整数 AA 和 BB。

输出格式

按题目所述,输出结果。

数据范围

0<A,B<1000<A,B<100

输入样例:

6 24

输出样例:

Sao Multiplos

 相关代码

#include<iostream>
using namespace std;
int main()
{
	int a,b;
	cin>>a>>b;
	if(a%b==0||b%a==0)cout<<"Sao Multiplos"<<endl;
	else cout<<"Nao sao Multiplos"<<endl;
	return 0;
}

660. 零食

某商店出售 55 种零食,零食编号为 1∼51∼5。

55 种零食的价目表如下所示:

零食种类        价格
零食  1         R$ 4.00
零食  2         R$ 4.50
零食  3         R$ 5.00
零食  4         R$ 2.00
零食  5         R$ 1.50

现在给定某种零食的编号和数量,请你计算总价值是多少。

输入格式

输入包含两个整数 xx 和 yy,其中 xx 为零食编号,yy 为零食数量。

输出格式

输出格式为 Total: R$ X,其中 XX 为总价值,保留两位小数。

数据范围

1≤x≤51≤x≤5,
1≤y≤1001≤y≤100

输入样例:

3 2

输出样例:

Total: R$ 10.00

相关代码

#include<iostream>
using namespace std;
int main()
{
	int x,y;
	double t;
	
	cin>>x>>y;
	
	if(x==1)t=4;
	if(x==2)t=4.5;
	if(x==3)t=5;
	if(x==4)t=2;
	if(x==5)t=1.5;
	printf("Total: R$ %.2lf",t*y);
	return 0;
}

659. 区间

给定一个浮点数,请你判断该数字属于以下哪个区间:[0,25],(25,50],(50,75],(75,100][0,25],(25,50],(50,75],(75,100]。

如果给定的数值小于 00 或大于 100100,则程序输出 Fora de intervalo,表示超出范围。

开区间 (a,b)(a,b):在实数 aa 和实数 bb 之间的所有实数,但不包含 aa 和 bb。

闭区间 [a,b][a,b]:在实数 aa 和实数 bb 之间的所有实数,包含 aa 和 bb。

输入格式

输入一个浮点数。

输出格式

判断输入数值位于哪个区间,按格式 Intervalo x 输出,其中 xx 为区间范围 [0,25],(25,50],(50,75],(75,100][0,25],(25,50],(50,75],(75,100] 中的一个。

如果数值位于所有区间之外,则输出 Fora de intervalo

输入样例:

25.01

输出样例:

Intervalo (25,50]

相关代码

#include<iostream>
using namespace std;
int main()
{
	double n;
	
	cin>>n;
	if(n>=0&&n<=25)cout<<"Intervalo [0,25]";
	else if(n>25&&n<=50)cout<<"Intervalo (25,50]";
	else if(n>50&&n<=75)cout<<"Intervalo (50,75]";
	else if(n>75&&n<=100)cout<<"Intervalo (75,100]";
	else cout<<"Fora de intervalo";
	return 0;
}

664. 三角形

读取三个浮点数 A,BA,B 和 CC 并验证是否可以用它们形成三角形。

如果可能,则计算并输出三角形的周长:

Perimetro = XX.X

如果不可能,则计算并输出以 AA 和 BB 为底以 CC 为高的梯形面积:

Area = XX.X

输入格式

共一行,包含三个浮点数 A,B,CA,B,C。

输出格式

按题目描述格式,输出答案,答案保留一位小数。

数据范围

0<A,B,C<100.00<A,B,C<100.0

输入样例1:

6.0 4.0 2.0

输出样例1:

Area = 10.0

输入样例2:

6.0 4.0 2.1

输出样例2:

Perimetro = 12.1

相关代码

#include<iostream>
using namespace std;
int main()
{
	double a,b,c;
	cin>>a>>b>>c;
	if(a+b>c&&b+c>a&&a+c>b)printf("Perimetro = %.1lf",a+b+c);
	else printf("Area = %.1lf",1.0*(a+b)*c/2);
	return 0;
}

667. 游戏时间

读取两个整数 AA 和 BB,表示游戏的开始时间和结束时间,以小时为单位。

然后请你计算游戏的持续时间,已知游戏可以在一天开始并在另一天结束,最长持续时间为 2424 小时。

如果 AA 与 BB 相等,则视为持续了 2424 小时。

输入格式

共一行,包含两个整数 AA 和 BB。

输出格式

输出格式为 O JOGO DUROU X HORA(S),其中 XX 为游戏持续时间。

数据范围

0≤A,B≤230≤A,B≤23

输入样例1:

16 2

输出样例1:

O JOGO DUROU 10 HORA(S)

输入样例2:

0 0

输出样例2:

O JOGO DUROU 24 HORA(S)

输入样例3:

2 16

输出样例3:

O JOGO DUROU 14 HORA(S)

相关代码

#include<iostream>
using namespace std;
int main()
{
	int a,b,x;
	cin>>a>>b;
	if(a==0)a=24;
	if(b==0)b=24;
	x=24-a+b;
	if(x>24)x=x-24;
	cout<<"O JOGO DUROU "<<x<<" HORA(S)"<<endl;
	return 0;
}

669. 加薪

ABC 公司决定给员工加薪,加薪情况如下所示:

    薪水                涨薪幅度
0 - 400.00                15%
400.01 - 800.00           12%
800.01 - 1200.00          10%
1200.01 - 2000.00         7%
超过 2000.00              4%

读取员工的工资,计算并输出员工的新工资,以及员工增加的收入和涨薪幅度。

输入格式

共一行,包含一个保留两位小数的浮点数。

输出格式

输出格式如下所示:

第一行输出 Novo salario: X,XX 表示员工新工资,保留两位小数。

第二行输出 Reajuste ganho: Y,YY 表示员工增加的具体收入数值,保留两位小数。

第三行输出 Em percentual: Z,ZZ 表示涨薪幅度,注意用百分比表示。

数据范围

0≤原工资≤2500.000≤原工资≤2500.00

输入样例:

400.00

输出样例:

Novo salario: 460.00
Reajuste ganho: 60.00
Em percentual: 15 %

相关代码

#include<iostream>
using namespace std;
int main()
{
	double x,y,z,n;
	cin>>n;
	if(n>=0&&n<=400)x=n*1.15,y=n*0.15,z=15;
	if(n>=400.01&&n<=800)x=n*1.12,y=n*0.12,z=12;
	if(n>=800.01&&n<=1200)x=n*1.10,y=n*0.10,z=10;
	if(n>=1200.01&&n<=2000)x=n*1.07,y=n*0.07,z=7;
	if(n>2000)x=n*1.04,y=n*0.04,z=4;
	printf("Novo salario: %.2lf\n",x);
	printf("Reajuste ganho: %.2lf\n",y);
	printf("Em percentual: %.0lf %%",z);
	return 0;
}

670. 动物

给定你三个葡萄牙语单词,这些词将根据下表从左到右定义一个动物。

请你确定并输出这个动物的名称。

输入格式

根据上表,输入包含三个单词,每行一个,用以识别动物,单词由小写字母构成。

输出格式

输出识别出的动物的名称。

输入样例:

vertebrado
mamifero
onivoro

输出样例:

homem

 相关代码

#include<bits/stdc++.h>
using namespace std;
string a,b,c;
int main()
{
    cin>>a>>b>>c;
    if(a=="vertebrado"&&b=="ave"&&c=="carnivoro")
        cout<<"aguia";
    else if(a=="vertebrado"&&b=="ave"&&c=="onivoro")
        cout<<"pomba";
    else if(a=="vertebrado"&&b=="mamifero"&&c=="onivoro")
        cout<<"homem";
    else if(a=="vertebrado"&&b=="mamifero"&&c=="herbivoro")
        cout<<"vaca";
    else if(a=="invertebrado"&&b=="inseto"&&c=="hematofago")
        cout<<"pulga";
    else if(a=="invertebrado"&&b=="inseto"&&c=="herbivoro")
        cout<<"lagarta";
    else if(a=="invertebrado"&&b=="anelideo"&&c=="hematofago")
        cout<<"sanguessuga";
    else
        cout<<"minhoca";
    return 0;
}

习题

657. 选择练习1

读取 44 个整数值 A,B,CA,B,C 和 DD。

如果四个整数同时满足以下条件:

  1. BB 大于 CC。
  2. DD 大于 AA。
  3. CC 和 DD 的总和大于 AA 和 BB 的总和。
  4. CC 和 DD 是正值。
  5. AA 是偶数。

则输出 Valores aceitos,否则,输出 Valores nao aceitos

输入格式

输入占一行,包含四个整数 A,B,C,DA,B,C,D。

输出格式

如果输入数值满足题目条件则输出 Valores aceitos,否则输出 Valores nao aceitos

数据范围

−100≤A,B,C,D≤100−100≤A,B,C,D≤100

输入样例:

5 6 7 8

输出样例:

Valores nao aceitos

相关代码

#include<iostream>
using namespace std;
int main()
{
	int a,b,c,d;
	cin>>a>>b>>c>>d;
	if(b>c&&d>a&&c+d>a+b&&c>=0&&d>=0&&a%2==0)printf("Valores aceitos");
	else printf("Valores nao aceitos");
	return 0;
}

671. DDD

给定一个整数,请根据下表确定并输出其对应的城市名称:

如果输入数字不在上表中,则输出 DDD nao cadastrado

输入格式

共一行,包含一个整数。

输出格式

输出对应城市名称,如果没有对应城市名称,则输出 DDD nao cadastrado

输入样例:

11

输出样例:

Sao Paulo

相关代码 

#include <iostream>
using namespace std;
int main()
{
    int x;
    cin>>x;
    if (x==61)   cout<< "Brasilia" <<endl;
    else if(x==71) cout<< "Salvador" <<endl;
    else if(x==11) cout<< "Sao Paulo" <<endl;
    else if(x==21) cout<< "Rio de Janeiro" <<endl;
    else if(x==32) cout<< "Juiz de Fora" <<endl;
    else if(x==19) cout<< "Campinas" <<endl;
    else if(x==27) cout<< "Vitoria" <<endl;
    else if(x==31) cout<< "Belo Horizonte" <<endl;
    else cout << "DDD nao cadastrado" <<endl;
    return 0;
}

662. 点的坐标

给定两个保留一位小数的浮点数 X,YX,Y,用来表示一个点的横纵坐标。

请你判断该点在坐标系中的位置。

输入格式

共一行,包含两个浮点数 X,YX,Y,表示点的横纵坐标。

输出格式

如果点在第一象限,则输出 Q1,在第二象限,则输出 Q2,以此类推。

如果点在原点处,则输出 Origem

否则,如果点在 xx 坐标上,则输出 Eixo X,在 yy 坐标上,则输出 Eixo Y

数据范围

−10.0≤X,Y≤10.0−10.0≤X,Y≤10.0

输入样例1:

4.5 -2.2

输出样例1:

Q4

输入样例2:

0.0 0.0

输出样例2:

Origem

 相关代码

#include <iostream>
using namespace std;

int main()
{
    double x,y;
    cin >> x >>y;

    if(x==0 && y==0) cout<<"Origem";
    else if(x * y ==0) cout<< (x==0 ? "Eixo Y" : "Eixo X");
    else if(x > 0) cout<< (y > 0 ? "Q1" : "Q4");
    else cout<< (y > 0 ? "Q2" : "Q3");
}

666. 三角形类型

读取表示三角形三条边的 33 个浮点数 A,BA,B 和 CC 并按降序排列,使 AA 边是三边中最大的一边。

接下来,根据以下情况,确定它们可以组成的三角形类型:

  • 如果 A≥B+CA≥B+C,则说明三条边不能构成三角形,请输出:NAO FORMA TRIANGULO
  • 否则,说明三条边可以构成三角形,然后按如下情况输出:
    • 如果A2=B2+C2A2=B2+C2,请输出:TRIANGULO RETANGULO
    • 如果A2>B2+C2A2>B2+C2,请输出:TRIANGULO OBTUSANGULO
    • 如果A2<B2+C2A2<B2+C2,请输出:TRIANGULO ACUTANGULO
    • 如果三个边长度都相同,请输出:TRIANGULO EQUILATERO
    • 如果只有两个边长度相同而第三个边长度不同,请输出:TRIANGULO ISOSCELES

输入格式

共一行,包含三个浮点数 A,B,CA,B,C。

输出格式

输出 A,B,CA,B,C 组成的三角形的类型。

注意,上述条件可能满足不止一条,这种情况下将所有类型名称,按题目介绍顺序输出,每行输出一条。

数据范围

0<A,B,C≤10.00<A,B,C≤10.0

输入样例:

7.0 5.0 7.0

输出样例:

TRIANGULO ACUTANGULO
TRIANGULO ISOSCELES

相关代码

#include <iostream>

using namespace std;

int main()
{
    double a, b, c;
    cin >> a >> b >> c;

    if (a < b) swap(a, b);
    if (a < c) swap(a, c);
    if (b < c) swap(b, c);

    if (a >= b + c) 
        cout << "NAO FORMA TRIANGULO" << endl;
    else
    {
        if (a * a == b * b + c * c) 
            cout << "TRIANGULO RETANGULO" << endl;
        if (a * a > b * b + c * c)
            cout << "TRIANGULO OBTUSANGULO" << endl;
        if (a * a < b * b + c * c) 
            cout << "TRIANGULO ACUTANGULO" << endl;
        if (a == b && a == c) 
            cout << "TRIANGULO EQUILATERO" << endl;
        if ((a == b && a != c && b != c) || (a == c && a != b && c != b)|| (b == c && b != a && c != a)) 
            cout << "TRIANGULO ISOSCELES" << endl;
    }

    return 0;
}

668. 游戏时间2

读取四个整数 A,B,C,DA,B,C,D,用来表示游戏的开始时间和结束时间。

其中 AA 和 BB 为开始时刻的小时和分钟数,CC 和 DD 为结束时刻的小时和分钟数。

请你计算游戏的持续时间。

比赛最短持续 11 分钟,最长持续 2424 小时。

输入格式

共一行,包含四个整数 A,B,C,DA,B,C,D。

输出格式

输出格式为 O JOGO DUROU X HORA(S) E Y MINUTO(S),表示游戏共持续了 XX 小时 YY 分钟。

数据范围

0≤A,C≤230≤A,C≤23,
0≤B,D≤590≤B,D≤59

输入样例1:

7 8 9 10

输出样例1:

O JOGO DUROU 2 HORA(S) E 2 MINUTO(S)

输入样例2:

7 7 7 7

输出样例2:

O JOGO DUROU 24 HORA(S) E 0 MINUTO(S)

输入样例3:

7 10 8 9

输出样例3:

O JOGO DUROU 0 HORA(S) E 59 MINUTO(S)

相关代码

#include <iostream>

using namespace std;

int main()
{
    int a, b, c, d;
    cin >> a >> b >> c >> d;

    if(d < b) c -= 1,d += 60; 

    if(c < a) c += 24; 

    if(c - a == 0 && d - b == 0) c += 24; 

    printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)",c-a,d-b);
}

672. 税

读取一个保留两位小数的浮点数值,表示一个公民的工资。

在公民缴纳个人所得税时,不同收入部分需要缴税的税率也是不同的。

请根据下表确定该公民需要缴纳的个人所得税是多少。

输入格式

共一行,包含一个浮点数。

输出格式

如果公民需要缴税,则输出所需缴纳的税额。输出格式为 R$ X,其中 XX 为个税的金额,保留两位小数。

如果公民不需要缴税,则输出 Isento

数据范围

0≤公民工资≤50000≤公民工资≤5000

输入样例1:

3002.00

输出样例1:

R$ 80.36

输入样例2:

1700.00

输出样例2:

Isento

输入样例3:

4520.00

输出样例3:

R$ 355.60

样例解释

对于样例 11,0∼2000.000∼2000.00 部分不用缴税,2000.01∼3000.002000.01∼3000.00 部分按 8%8% 的税率缴税,共计 1000×8%=801000×8%=80,3000.01∼3002.003000.01∼3002.00 部分按 18%18% 的税率缴税,共计 2×18%=0.362×18%=0.36,合计 80.3680.36。

对于样例 22,公民收入未超过 20002000,所以输出 Isento

对于样例 33,0∼2000.000∼2000.00 部分不用缴税,2000.01∼3000.002000.01∼3000.00 部分按 8%8% 的税率缴税,共计 1000×8%=801000×8%=80,3000.01∼4500.003000.01∼4500.00 部分按 18%18% 的税率缴税,共计 1500×18%=2701500×18%=270,4500.01∼45204500.01∼4520 部分按 28%28% 的税率缴税,共计 20×28%=5.6020×28%=5.60,合计 355.60355.60。

 相关代码

#include<bits/stdc++.h>
using namespace std;

int main()
{
    double n;
    cin>>n;
    if(n>=0.00&&n<=2000.00)cout<<"Isento";
    else if(n>=2000.01&&n<=3000.00)cout<<fixed<<setprecision(2)<<"R$ "<<(n-2000.00)*0.08;
    else if(n>=3000.01&&n<=4500.00)cout<<fixed<<setprecision(2)<<"R$ "<<(n-3000.00)*0.18+80;
    else if(n>4500.00)cout<<fixed<<setprecision(2)<<"R$ "<<(n-4500.00)*0.28+350;
}

663. 简单排序

读取三个整数并按升序对它们进行排序。

输入格式

共一行,包含三个整数。

输出格式

首先,将三个整数按升序顺序输出,每行输出一个整数。

然后,输出一个空行。

紧接着,将三个整数按原输入顺序输出,每行输出一个整数。

数据范围

−100≤输入整数≤100−100≤输入整数≤100,
输入整数各不相同。

输入样例:

7 21 -14

输出样例:

-14
7
21

7
21
-14

相关代码

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int a[4],b[4];
    for(int i=1;i<=3;i++){
        cin>>a[i];
        b[i]=a[i];
    }
    sort(a+1,a+4);
    for(int i=1;i<=3;i++)cout<<a[i]<<endl;
    cout<<" "<<endl;
    for(int i=1;i<=3;i++)cout<<b[i]<<endl;
    return 0;
}

658. 一元二次方程公式

读取三个浮点数 a,b,ca,b,c 的值,利用一元二次方程求根公式对方程 ax2+bx+c=0ax2+bx+c=0 进行求解。

一元二次方程求根公式为:

x=−b±b2−4ac‾‾‾‾‾‾‾‾√2ax=−b±b2−4ac2a

如果 b2−4ac<0b2−4ac<0 导致方程无解或 a=0a=0,则输出 Impossivel calcular

输入格式

输入三个浮点数 a,b,ca,b,c。

输出格式

参照输出格式,输出方程的根,输出结果保留五位小数,如果无解则输出 Impossivel calcular

两个根可以按任意顺序输出,都算正确。

数据保证不存在只有一个解的情况。

数据范围

−1000.0≤a,b,c≤1000.0−1000.0≤a,b,c≤1000.0

输入样例:

10.0 20.1 5.1

输出样例:

R1 = -0.29788
R2 = -1.71212

相关代码

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	double a,b,c,d;
	cin>>a>>b>>c;
	d=b*b-4*a*c;
	if(d<0||a==0)cout<<"Impossivel calcular"<<endl;
	if(d>=0)
	{
		double R1=(-b+sqrt(d))/(2*a),R2=(-b-sqrt(d))/(2*a);
		printf("R1 = %.5lf\nR2 = %.5lf\n",R1,R2);
	}
	return 0;
}

661. 平均数3

读取 44 个数字 N1,N2,N3,N4N1,N2,N3,N4,这 44 个数字都是保留 11 位小数的浮点数,对应于学生获得的 44 个分数。

这 44 个分数的权重分别为 2,3,4,12,3,4,1,请你计算学生成绩的平均值 XX 并输出 Media: X

接下来分为以下三种情况:

  1. 如果平均值为 7.07.0 或更高,则输出 Aluno aprovado.
  2. 如果平均值小于 5.05.0,则输出 Aluno reprovado.
  3. 如果平均值大于等于 5.05.0 并且小于 7.07.0,则输出 Aluno em exame.,并再读取一个数字 YY,然后输出 Nota do exame: Y。接下来重新计算平均值 Z=(X+Y)/2Z=(X+Y)/2,如果 ZZ 大于或等于 5.05.0,则输出 Aluno aprovado.,否则输出 Aluno reprovado.。最后输出 Media final: Z,表示学生的最终成绩。

输入格式

输入中包含四个浮点数,表示学生的四个成绩。

也有部分满足情况 33 的数据,多包含一个浮点数。

输出格式

输出的结果均保留 11 位小数,具体形式参照题目描述和输出样例。

数据范围

0≤输入数据≤10.00≤输入数据≤10.0

输入样例1:

2.0 4.0 7.5 8.0
6.4

输出样例1:

Media: 5.4
Aluno em exame.
Nota do exame: 6.4
Aluno aprovado.
Media final: 5.9

输入样例2:

2.0 6.6 4.0 9.0

输出样例2:

Media: 4.9
Aluno reprovado.

输入样例3:

9.0 4.0 8.5 9.0

输出样例3:

Media: 7.3
Aluno aprovado.

相关代码

#include<iostream>
using namespace std;
int main()
{
	double n1,n2,n3,n4,x,y,z;
	cin>>n1>>n2>>n3>>n4;
	x=(2*n1+3*n2+4*n3+n4)/10;
	printf("Media: %.1lf\n",x);
	if(x>=7)printf("Aluno aprovado.\n");
	if(x<5)printf("Aluno reprovado.\n");
	if(x>=5&&x<7)
	{
		printf("Aluno em exame.\n");
		cin>>y;
		printf("Nota do exame: %.1lf\n",y);
		z=(x+y)/2;
		if(z>=5)printf("Aluno aprovado.\n");
		else printf("Aluno reprovado.\n");
		printf("Media final: %.1lf\n",z);
	}
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小胡杨酱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值