XDOJ第一弹:基本计算

今天开始在CSDN同步更新我的公众号文章了,毕竟手机比较难检索题号
想要第一时间收到文章的可以跳转至最后,关注我的公众号

P-0009

题目:计算球体重量

时间限制:1S

内存限制:10000Kb

问题描述:

已知铁的比重是7.86(克/立方厘米),金的比重是19.3(克/立方厘米)。写一个程序,分别计 算出给定直径的铁球与金球的质量,假定PI=3.1415926

输入说明:

输入两个整数,分别表示铁球与金球的直径(单位为毫米)

输出说明:

输出两个浮点数,分别表示铁球与金球的质量(单位为克),小数点后保留3位小数,两 个浮点数之间用空格分隔

输入样例:

100 100

输出样例:

4115.486 10105.456

提示

用scanf输入,用printf输出,保留3位小数的格式控制字符为%.3f

#include<stdio.h>
int main(){
    const double pi=3.1415926;
    const double iron=0.00786;
    const double gold=0.0193;
    int d1,d2;
    scanf("%d",&d1);
    scanf("%d",&d2);
    printf("%.3f %.3f",4*pi*d1*d1*d1*iron/24,4*pi*d2*d2*d2*gold/24);
    return 0;
}

P-0010

题目:温度转换

时间限制:1 S

内存限制:10000Kb

问题描述:

已知华氏温度到摄氏温度的转换公式为:摄氏温度= (华氏温度- 32)×5/9,写程序将给定的华氏温度转换为摄氏温度输出

输入说明:

只有一个整数,表示输入的华氏温度

输出说明:

输出一个表示摄氏温度的实数,小数点后保留2位有效数字,多余部分四舍五入

输入样例:

50

输出样例:

10.00

提示:

用scanf输入,用printf输出,保留2位小数的格式控制字符为%.2f

#include<stdio.h>
int main(){
    int h;
    scanf("%d",&h);
    printf("%.2f",((double)h-32)*5/9);
    return 0;
}

P-0011

题目11:整数简单运算

问题描述:编写程序,计算用户输入的两个整数的和、差、乘积(*)和商(/)。

输入格式:输入两个整数,整数之间用空格分隔。

输出格式:输出四个整数结果,分别表示和、差、积和商,每输出一个结果换行。

输入样例:

3 4

输出样例:

7

-1

12

0

#include<stdio.h>
int main(){
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d\n",a+b);
    printf("%d\n",a-b);
    printf("%d\n",a*b);
    printf("%d\n",a/b);
    return 0;
}

P-0015

A+B+C

问题描述:

通过键盘输入三个整数a,b,c,求3个整数之和。

输入说明:

三整形数据通过键盘输入,输入的数据介于-100000和100000之间,整数之间以空格、跳格或换行分隔。

输出说明:

输出3个数的和。

输入样例:

-6 0 39

输出样例:

33

#include<stdio.h>
int main(){
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("%d",a+b+c);
    return 0;
}

P-0016

字符输入输出

问题描述:

通过键盘输入5个大写字母,输出其对应的小写字母,并在末尾加上“!”。

输入说明:

5个大写字母通过键盘输入,字母之间以竖线“|”分隔。

输出说明:

输出5个大写字母对应的小写字母,之间无分隔,并在末尾加上‘!’。

输入样例:

H|E|L|L|O

输出样例:

hello!

#include<stdio.h>
int main(){
    char a,b,c,d,e;
    scanf("%c|%c|%c|%c|%c",&a,&b,&c,&d,&e);
    printf("%c%c%c%c%c!",a+32,b+32,c+32,d+32,e+32);
    return 0;
}

P-0018

数字字符

问题描述:

通过键盘输入1个整数a(0<=a<=4),1个数字字符b(’0’<=b<=’5’),求a+b。

输入说明:

整形数据、数字字符通过键盘输入,输入的整形数据介于0和4之间,输入的数字字符介于‘0’和‘5’之间,二个输入数之间用“,”分隔。

输出说明:

分别以整数形式及字符形式输出a+b,输出的二个数之间用“,”分隔。

输入样例:

3 ,5

输出样例:

56,8

#include<stdio.h>
int main(){
    int a;
    char b;
    scanf("%d,%c",&a,&b);
    printf("%d,%c",a+b,a+b);
    return 0;
}

P-0019

实数运算

问题描述:

通过键盘输入长方体的长、宽、高,求长方体的体积V(单精度)。

输入说明:

十进制形式输入长、宽、高,输入数据间用空格分隔。

输出说明:

单精度形式输出长方体体积V,保留小数点后3位,左对齐。

输入样例:

15 8.12 6.66

输出样例:

811.188

#include<stdio.h>
int main(){
    float a,b,c;
    scanf("%f%f%f",&a,&b,&c);
    printf("%.3f",a*b*c);
    return 0;
}

P-0020

四则运算

问题描述:

输入两个整数和一个四则运算符,根据运算符计算并输出其运算结果(和、差、积、商、余之一)。注意做整除及求余运算时,除数不能为零。

输入说明:

使用scanf()函数输入两个整数和一个运算符,格式见输入样例

输出说明:

输出使用printf()函数,格式见输出样例。

输入样例:

5%2

输出样例:

5%2=1

#include<stdio.h>
int main(){
    int a,b;
    char c;
    scanf("%d",&a);
    scanf("%c",&c);
    scanf("%d",&b);
    if(c=='%'){
        printf("%d%c%d=%d",a,c,b,a%b);
    }else if(c=='+'){
        printf("%d%c%d=%d",a,c,b,a+b);
    }else if(c=='-'){
        printf("%d%c%d=%d",a,c,b,a-b);
    }else if(c=='*'){
        printf("%d%c%d=%d",a,c,b,a*b);
    }else if(c=='/'&&b!=0){
        printf("%d%c%d=%d",a,c,b,a/b);
    }
    return 0;
}

P-0021

数位输出

问题描述:

输入一个5位整数,求出其各数位数值,并按照从高位到低位的顺序输出,如:输入12345,输出为1 2 3 4 5。

输入说明:

输入一个五位正整数。

输出说明:

按数位从高到低依次输出,各数位之间以一个空格相分隔。

输入样例:

96237

输出样例:

9 6 2 3 7

(用到了数组)

#include<stdio.h>
int main(){
    long long int a;
    scanf("%lld",&a);
    int num[5];
    for(int i=0;i<5;i++){
        num[i]=a%10;
        a/=10;
    }
    for(int j=4;j>=0;j--){
        printf("%d ",num[j]);
    }
    return 0;
}

P-0042

整除判断
类别
基本计算
时间限制
1S
内存限制
256Kb
问题描述
判断正整数a能否被b整数,如果不能整除,输出商和余数

输入说明

输入两个正整数a和b(0<a, b<=10000),a和b之间用空格分隔。
输出说明
如果a能被b整除,输出yes,否则在同一行输出a除以b的商和余数,商和余数之间用空格 分隔
输入样例
17 7
输出样例
2 3

#include<stdio.h>
int main(){
    int a,b;
    scanf("%d%d",&a,&b);
    if(a%b==0){
        printf("yes");
    }else{
        printf("%d %d",a/b,a%b);
    }
    return 0;
}

P-0047

冰箱温度预测

类别

基本计算

问题描述

编写一个程序,用于预测冰箱断电后经过时间t(以小时为单位)后的温度T。已知计算公式如下所示

输入说明

输入两个整数h和m表示冰箱断电后经过的时间,h表示小时,m表示分钟

输出说明

输出冰箱断电后经过时间t(以小时为单位)后的温度T,保留两位小数

输入样例

2 0

输出样例

-16.00

#include<stdio.h>
int main(){
    int h,m;
    scanf("%d",&h);
    scanf("%d",&m);
    printf("%.2f",-20+4*(h+(double)m/60)*(h+(double)m/60)/((h+(double)m/60)+2));
    return 0;
}

P-0048

除法计算器
类别

基本计算

时间限制
1S
内存限制
256Kb
问题描述
小明的弟弟刚开始学习除法,为了检查弟弟的计算结果是否正确,小明决定设计一个简单计算器程序来验算。
输入说明
输入数据由四个整数m,n,q,r构成,m为被除数,n为除数,q和r为小明的弟弟计算出的商和余数。整数之间用空格分隔,所有整数取值范围在(-100000~100000),n不为0。
输出说明
如果验算结果正确,输出yes,否则输出正确的商和余数
输入样例:
样例1:
10 3 3 1
样例2:
10 3 3 2
输出样例
样例1输出:
yes
样例2输出:
3 1

#include<stdio.h>
int main(){
    int m,n,q,r;
    scanf("%d%d%d%d",&m,&n,&q,&r);
    if(q==m/n&&r==m%n){
        printf("yes");
    }else{
        printf("%d %d",m/n,m%n);
    }
    return 0;
}

P-0060

简单程序
描述
输出特定的文字
时间限制
1
内存限制
10000
类别
1
输入说明

输出说明
用C程序输出以下两行文字
C programming language is useful!
I like it very much.
输入样例

输出样例
C programming language is useful!
I like it very much.
提示
使用printf输出即可

过于简单,不作演示

P-0079

题目描述:

计算三个整数的平均值,结果保留两位小数。

输入格式:

共一行,包含三个整数,整数之间用空格分隔。

输出格式:

共一行,输出平均值,结果保留两位小数。

输入示例:

20 42 55

输出示例:

39.00

#include<stdio.h>
int main(){
    int a,b,c;
    double avg;
    scanf("%d%d%d",&a,&b,&c);
    avg=(a+b+c)/3.0;
    printf("%.2f",avg);
    return 0;
}

P-0089

题目描述:

输入球的半径,计算并输出球的体积,假定pi=3.14,结果保留两位小数。

输入格式:

共一行,输入球体半径,两位小数。

输出格式:

共一行,输出球体体积,结果保留两位小数。

示例:
输入:5.50
输出:696.56

#include<stdio.h>
int main(){
    const double pi=3.14;
    double r;
    scanf("%lf",&r);
    printf("%.2f",4*r*r*r*pi/3);
    return 0;
}

P-0090

题目描述:

输入一个三位数整数,求其百位、十位和个位数字之和。

输入格式:

共一行,输入一个三位整数。

输出格式:

共一行,输出一个整数。

示例:
输入:

128

输出:

11

#include<stdio.h>
int main(){
    int n,sum=0;
    scanf("%d",&n);
    while(n!=0){
        sum+=n%10;
        n/=10;
    }
    printf("%d",sum);
    return 0;
}

P-0091

题目描述:

输入三角形的三边长,计算三角形的面积,结果保留两位小数。

边长分别为a,b,c,三角形的面积公式为s=sqrt(p(p-a)(p-b)(p-c)),其中p=(a+b+c)/2。
输入格式:

共一行,输入三个数,保留两位小数,用空格隔开各个数据。

输出格式:

共一行,输出面积,结果保留两位小数。

示例:
输入:

3.00 4.00 5.00

输出:

6.00

#include<stdio.h>
#include<math.h>
int main(){
    double a,b,c,s,p;
    scanf("%lf%lf%lf",&a,&b,&c);
    p=(a+b+c)/2;
    s=sqrt(p*(p-a)*(p-b)*(p-c));
    printf("%.2f",s);
    return 0;
}

P-0092

题目描述:

公司财务要发工资现金,需要提前换取100元、50元、20元、10元、5元和1元的人民币,

请输入工资数,计算张数最少情况下,各自需要多少张。
输入格式:

共一行,输入一个正整数。

输出格式:

共一行,分别是100、50、20、10、5、1元面额的张数,用空格隔开各个数据。

示例:
输入:

1258

输出:

12 1 0 0 1 3

#include <stdio.h>
int main(){
  int i;
  scanf("%d",&i);
  printf("%d ",i/100);
  i%=100;
  printf("%d ",i/50);
  i%=50;
  printf("%d ",i/20);
  i%=20;
  printf("%d ",i/10);
  i%=10;
  printf("%d ",i/5);
  i%=5;
  printf("%d ",i);
  return 0;
}

P-0100

三角形判别
描述
已知三角形任意两边之和大于第三边,给出三个正整数a,b,c,,请判断能否构成一个三角形,并输出相应结果。
时间限制
1
内存限制
10000
类别
1
输入说明
输入数据为同一行上的3个整数a,b,c(0 < a,b,c < 1000),整数之间用空格分隔。
输出说明
如果输入的三个整数能够构成一个三角形,输出该三角形周长,否则输出No
输入样例
3 3 2
1 1 5
输出样例
8
No
提示
能够构成一个三角形,输出该三角形周长,否则输出No

#include<stdio.h>
int main(){
    unsigned int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    if(a+b>c&&a+c>b&&b+c>a){
        printf("%d",a+b+c);
    }else{
        printf("No");
    }
    return 0;
}

P-0110(注意UTF-8和GBK编码的区别)

题目描述:

编写程序:输入一个正整数,判断该数的奇偶性,输出判断的结果(偶数/奇数)。

输入格式:

输入一个正整数。

输出格式:

输出“偶数”或“奇数”。

示例:
输入:5
输出:奇数

#include<stdio.h>
int main(){
    unsigned int a;
    scanf("%d",&a);
    if(a%2==0){
        printf("偶数");
    }else{
        printf("奇数");
    }
    return 0;
}

P-0111

题目描述:

编写程序,输入一个正整数,判断是否能被5和7同时整除,若可以,则输出yes;否则输出no。

输入格式:

输入一个正整数。

输出格式:

输出“yes”或“no”。

示例:
输入:

35

输出:

yes

#include<stdio.h>
int main(){
    unsigned int a;
    scanf("%d",&a);
    if(a%5==0&&a%7==0){
        printf("yes");
    }else{
        printf("no");
    }
    return 0;
}

P-0113

题目描述:
编写程序,根据某城市普通出租车收费标准进行车费计算。标准如下:
起步里程为3公里,起步费10元;
超出起步里程后10公里内,每公理2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车等待的,按每5分钟2元计费(不足5分钟不收费)。
输入格式:

共一行,包括行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔

输出格式:

在一行中输出乘客应支付的车费(单位为元),结果四舍五入保留整数。

示例:
输入:

40.0 7

输出:

116

#include <stdio.h>
int main(){
  float km,price=0; 
  int min;
  scanf("%f%d",&km,&min);
  if(km>10){
        price=3*(km-10)+10 +14;
    }else if(km>3){
        price=2*(km-3)+10;
    }else{
        price = 10;
    }
  price+=min/5*2;
  printf("%.0f", price);
  return 0;
}

P-0125

题目:利率计算

时间限制:1S

内存限制:10000Kb

问题描述:

假如我国国民生产总值的年增长率为9%,计算10年后我国国民总值与现在相比增长多少百分比。计算公式为p=(1+r)^n

r为增长率,n为年数,p为与现在相比的倍数。

输入说明:

输入两个浮点数,分别表示年增长率和年数,两个浮点数之间用空格分隔。

输出说明:

输出一个浮点数,表示与现在相比的倍数,小数点后保留2位小数。

输入样例:

0.09 10

输出样例:

2.37

#include<stdio.h>
#include<math.h>
int main(){
    double r,n;
    scanf("%lf%lf",&r,&n);
    printf("%.2f",pow(1+r,n));
    return 0;
}

P-0126

题目:购房贷款计算

时间限制:1S

内存限制:10000Kb

问题描述:

购房从银行贷了一笔款d,准备每月还款额为P,月利率为r,计算多少月能还清。(设d为300000元,p为6000元,r为1%,对求得的月份取小数点后一位,对第2位按四舍五入处理)

提示:计算还清月数m的公式如下:

在这里插入图片描述

也可以将公式改写为:在这里插入图片描述

输入说明:

输入三个浮点数,分别表示贷款,每月还款额与月利率,三个浮点数之间用空格分隔。

输出说明:

输出以个浮点数,表示还清贷款的月数,小数点后保留2位小数。

输入样例:

300000 6000 0.01

输出样例:

69.66

#include<stdio.h>
#include<math.h>
int main(){
    double d,p,r,m;
    scanf("%lf%lf%lf",&d,&p,&r);
    m=(log10(p)-log10(p-d*r))/log10(1+r);
    printf("%.2f",m);
    return 0;
}

P-0139(凯撒密码)

字符编码

时间限制:1S

内存限制:10000Kb

问题描述:

请编程序将“China”译成密码,密码规律是:用原来字母后面第四个字母代替原来的字母。例如“A”后面的第四个字母是“E”,用“E”代替“A”,因此,“China”应译为“Glmre”。

输入说明:

用赋初值的方法使c1,c2,c3,c4,c5这五个变量的值分别为‘C’,‘h’,‘i’‘n’,‘a’,字符之间以空格分隔。

输出说明:

经过运算,使c1,c2,c3,c4,c5分别变成‘G’,‘l’,‘m’,‘r’,‘e’。用printf函数输出这五个字符

输入样例:

C h i n a

输出样例:

Glmre

原理是ASCII码

#include<stdio.h>
int main(){
    char c1,c2,c3,c4,c5;
    scanf("%c %c %c %c %c",&c1,&c2,&c3,&c4,&c5);
    printf("%c%c%c%c%c",c1+4,c2+4,c3+4,c4+4,c5+4);
    return 0;
}

第一弹 完。

最后

感兴趣的可以关注我的微信公众号,第一时间收到动态。
在这里插入图片描述

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值