HAUTOJ刷题日记(C语言1-50)

1000: A+B Problem

题目描述

计算两个整数a, b的和

输入

两个整数 a,b (0<=a,b<=10)

输出

输出a+b的值,不需要输出多余字符

样例输入

1 2

样例输出 复制

3

答案

#include <stdio.h>

int main(void)//
{
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d", a + b);
    return 0;
}

1001: 植树问题

题目描述

某学校植树节开展植树活动,已知树苗有m株,参加植树的同学有n人(且m>n),请问每位同学平均可以植树几株?还有几株剩余?

输入

输入两个整数m和n,分别表示树苗的数量和学生的人数(m>n)。

输出

输出两个整数,分别表示每位同学平均植树的数量及剩余的树苗数量。

样例输入

163 32

样例输出

5 3

答案

#include <stdio.h>

int main(void)//
{
    int m, n;
    scanf("%d %d", &m, &n);
    if (m > n){
        printf("%d %d", m / n, m % n);
    } else{
        printf("你输入的数量有误,请重新输入\n");
    }
    return 0;
}

1002: 简单多项式求值

题目描述

对用户输入的任一整数,输出以下多项式的值。

y=2x2+x+8

输入

输入整数x的值。

输出

输出一个整数,即多项式的值。

样例输入

1

样例输出

11

答案

#include <stdio.h>

int main(void)//
{
    int x, y;
    scanf("%d", &x);
    y = 2 * x * x + x + 8;
    printf("%d", y);
    return 0;
}

1003: 两个整数的四则运算

题目描述

输入两个整数num1和num2,请你设计一个程序,计算并输出它们的和、差、积、整数商及余数。

输入

输入只有两个正整数num1、num2。

输出

输出占一行,包括两个数的和、差、积、商及余数,数据之间用一个空格隔开。

样例输入

1 2

样例输出

3 -1 2 0 1

答案

#include <stdio.h>

int main(void)//
{
    int num1, num2;
    scanf("%d %d", &num1, &num2);
    printf("%d %d %d %d %d", num1 + num2, num1 - num2, num1 * num2, num1 / num2, num1 % num2);
    return 0;
}

1004: 三位数的数位分离

题目描述

从键盘输入一个任意的三位正整数,分别求出其个位、十位和百位上的数字。

输入

输入任意的一个三位正整数。

输出

依次输出个位、十位、百位上的数字。以空格间隔,但最后一个数据的后面没有空格,直接换行。

样例输入

367

样例输出

7 6 3

答案

#include <stdio.h>

int main(void)//
{
    int a;
    scanf("%d", &a);
    printf("%d %d %d", a % 10, (a / 10) % 10, a / 100);
    return 0;
}

1005: 整数幂

题目描述

输入3个整数,输出它们的1次幂、2次幂和3次幂。

输入

输入3整数,用空格隔开

输出

输出3行,每行3个整数,分别是它们的1次幂、2次幂和3次幂,每个整数占9列,不足9列左对齐

样例输入

1 5 100

样例输出

1        1        1        
5        25       125      
100      10000    1000000  

答案

#include <stdio.h>
#include <math.h>

int main(void)//
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    printf("%-9d%-9d%-9d\n", a, (int)pow(a, 2), (int)pow(a, 3));	//pow(a, 2)可以改为a * a
    printf("%-9d%-9d%-9d\n", b, (int)pow(b, 2), (int)pow(b, 3));
    printf("%-9d%-9d%-9d\n", c, (int)pow(c, 2), (int)pow(c, 3));
    return 0;
}

1006: 求等差数列的和

题目描述

给出三个整数,分别表示等差数列的第一项、最后一项和公差,求该数列的和。

输入

输入三个整数,之间用空格隔开。第1个数作为首项,第2个数作为末项,第3个数作为公差.

输出

输出占一行,包含一个整数,为该等差数列的和。

样例输入

2 11 3

样例输出

26

答案

#include <stdio.h>

int main(void)//
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    int sum = 0;
    while (a <= b){
        sum += a;
        a += c;
    }
    printf("%d\n", sum);
    return 0;
}

1007: 鸡兔同笼

题目描述

鸡和兔关在一个笼子里,鸡有2只脚,兔有4只脚,没有例外。已知现在可以看到笼子里m个头和n只脚,求鸡和兔子各有多少只?

输入

输入两个整数m和n,分别代表笼子里头的个数和脚的个数。(假设m和n都在合法的数据范围内)

输出

依次输出鸡和兔的只数。(数字为0的也要输出)

样例输入

12 40

样例输出

4 8
#include <stdio.h>

int main(void)//
{
    int m, n;
    scanf("%d %d", &m, &n);
    printf("%d %d", m - (n / 2 - m),(n / 2 - m));
    return 0;
}

1008: 美元和人民币

题目描述

美元越来越贬值了,手上留有太多的美元似乎不是件好事。赶紧算算你的那些美元还值多少人民币吧。假设美元与人民币的汇率是1美元兑换6.5573元人民币,编写程序输入美元的金额,输出能兑换的人民币金额。

输入

输入美元的金额。

输出

输出能兑换的人民币的数值。输出保留2位小数。

样例输入

100

样例输出

655.73
#include <stdio.h>
#define RATE 6.5573

int main(void)//
{
    int dollar;
    scanf("%d", &dollar);
    printf("%.2lf", RATE * dollar);
    return 0;
}

1009: 求平均分

题目描述

已知某位学生的数学、英语和计算机课程的成绩,求该生三门课程的平均分。

输入

输入三个整数,数据之间由空格隔开。

输出

输出占一行,包含一个实数,为三门课的平均分,保留两位小数。

样例输入

87 73 93

样例输出

84.33
#include <stdio.h>

int main(void)//
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    printf("%.2lf", (a + b + c) / 3.0);
    return 0;
}

1010: 求圆的周长和面积

题目描述

输入圆的半径,求圆的周长和面积。
要求定义圆周率为如下宏常量
#define PI 3.14159

输入

输入半径r的值,为一实数。

输出

输出一行,包括周长和面积。数据之间用一个空格隔开,数据保留小数后面两位。

样例输入

3

样例输出

18.85 28.27
#include <stdio.h>
#define PI 3.14159

int main(void)//
{
    int r;
    scanf("%d", &r);
    printf("%.2lf %.2lf", 2 * PI * r, PI * r * r);
    return 0;
}

1011: 圆柱体表面积

题目描述

输入圆柱体的底面半径r和高h,计算圆柱体的表面积并输出到屏幕上。要求定义圆周率为如下宏常量

#define PI 3.14159

输入

输入两个实数,为圆柱体的底面半径r和高h。

输出

输出一个实数,即圆柱体的表面积,保留2位小数。

样例输入

42.1 71.6

样例输出

30076.14
#include <stdio.h>
#define PI 3.14159

int main(void)//
{
    double r, h;
    scanf("%lf %lf", &r, &h);
    printf("%.2lf", 2 * PI * r * r + 2 * PI * r * h);
    return 0;
}

1012: 求绝对值

题目描述

求实数的绝对值。

输入

输入一个实数。

输出

输出它的绝对值,结果保留两位小数

样例输入

-234.00

样例输出

234.00
#include <stdio.h>

int main(void)//
{
    double a;
    scanf("%lf", &a);
    if (a < 0){
        printf("%.2lf", -a);
    } else {
        printf("%.2lf", a);
    }
    return 0;
}

1013: 求两点间距离

题目描述

给定A(x1, y1), B(x2, y2)两点坐标,计算它们间的距离。

输入

输入包含四个实数x1, y1, x2, y2,分别用空格隔开,含义如描述。其中0≤x1,x2,y1,y2≤100。

输出

输出占一行,包含一个实数d,表示A, B两点间的距离。结果保留两位小数。

样例输入

1 1 2 2

样例输出

1.41
#include <stdio.h>
#include <math.h>

int main(void)//
{
    double x1, x2, y1, y2;
    scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
    printf("%.2lf", sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)));
    return 0;
}

1014: 求三角形的面积

题目描述

给出三角形的三条边,求三角形的面积。

输入

输入三角形的三条边长(实数),数据之间用空格隔开。

输出

输出三角形的面积,结果保留2位小数。

样例输入

2.5 4 5

样例输出

4.95
#include <stdio.h>
#include <math.h>

int main(void)//
{
    double a, b, c;
    scanf("%lf %lf %lf", &a, &b, &c);
    printf("%.2lf", 1.0 / 4 * sqrt((a + b + c) * (a + b - c) * (a + c - b) * (b + c - a)));
    return 0;
}

1015: 二次方程的实根

题目描述

编程计算并输出一元二次方程ax2+bx+c=0的两个实根,其中a、b、c的值由用户从键盘输入,假设a、b、c的值能保证方程有两个不相等的实根(即b2-4ac>0)。

输入

输入三个实数,以空格隔开。

输出

按从大到小的顺序输出两个实根,每个数据占7列、小数点后保留两位小数,不足7列右对齐

样例输入

2 6 1

样例输出

  -0.18  -2.82
#include <stdio.h>
#include <math.h>

int main(void)//
{
    double a, b, c;
    scanf("%lf %lf %lf", &a, &b, &c);
    if (b * b - 4 * a * c >= 0){
        printf("%7.2lf%7.2lf",(-b + sqrt(b * b - 4 * a * c)) / (2 * a),(-b - sqrt(b * b - 4 * a * c)) / (2 * a));
    }
    return 0;
}

1016: 银行利率

题目描述

设银行1年期定期存款年利率为2.25%,存款本金为deposit元,试编程计算并输出n年后的本利之和。

输入

输入一个正整数和一个实数,分别代表存款年数和存款本金。

输出

输出一个双精度实数,小数点后保留6位有效数字。

样例输入

2 100

样例输出

104.550625
#include <stdio.h>
#include <math.h>
#define RATE 0.0225

int main(void)//
{
    double deposit;
    int n;
    scanf("%d %lf", &n, &deposit);
    printf("%.6lf",deposit * pow(1 + RATE, n));
    return 0;
}

1017: 表面积和体积

题目描述

读入5个整数a, b, c, d 和 e,计算物体的表面积和体积。你可以想像该物体是一个长宽高为a, b, c 的长方体,每一面中央都是凹进去的,而凹进去的深度为 d,沒凹进去的边框宽度 e。

在这里插入图片描述

输入

5个整数a, b, c, d 和 e,含义如上所述。

输出

输出两个整数,即物体的表面积和体积,用空格隔开。输出单独占一行。

样例输入

7
8
9
1
2

样例输出

478 410
#include <stdio.h>

int main(void)//
{
    int a, b, c, d, e;
    scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);
    printf("%d ", 2 * a * b + 2 * b * c + 2 * a * c + 8 * ((a - 2 * e) * d + (b - 2 * e) * d + (c - 2 * e) * d));
    printf("%d", a * b * c - (2 * d * ((a - 2 * e) * (c - 2 * e) + (a - 2 * e) * (b - 2 * e) + (b - 2 * e) * (c - 2 * e))));
    return 0;
}

1018: 奇数偶数

题目描述

输入一个整数,判断该数是奇数还是偶数。

输入

输入整数n。

输出

如果该数是奇数就输出“odd”,偶数就输出“even”(输出不含双引号)。

样例输入

8

样例输出

even
#include <stdio.h>

int main(void)//
{
    int n;
    scanf("%d", &n);
    if (n % 2 == 0){
        printf("even");
    } else{
        printf("odd");
    }
    return 0;
}

1019: 公园门票

题目描述

某公园门票的票价是每人50元,一次购票满30张,每张可以少收2元。试编写自动计费系统程序。

输入

输入一个正整数,表示购票的数量。

输出

输出一个实数,表示用户实际需要支付的金额,保留两位小数。

样例输入

30

样例输出

1440.00

1020: 两整数排序

题目描述

从键盘输入两个整数x,y,按从小到大的顺序输出它们的值。

输入

输入两个整数x,y。

输出

按从小到大的顺序输出它们的值。数据之间以空格间隔。

样例输入

20 16

样例输出

16 20
#include <stdio.h>

int main(void)//
{
    int x, y;
    scanf("%d %d", &x, &y);
    if (x > y){
        printf("%d %d", y, x);
    } else{
        printf("%d %d", x, y);
    }
    return 0;
}

1021: 三个整数的最大值

题目描述

从键盘输入三个整数x,y和z,求出其中最大的数。

输入

输入三个整数,用空格隔开

输出

输出最大整数。

样例输入

20 16 18

样例输出

20
#include <stdio.h>

int main(void)//
{
    int x, y, z;
    scanf("%d %d %d", &x, &y, &z);
    if (x > y){
        if (x > z){
            printf("%d", x);
        } else{
            printf("%d", z);
        }
    } else{
        if (y > z){
            printf("%d", y);
        } else{
            printf("%d", z);
        }
    }
    return 0;
}

1022: 三整数排序

题目描述

从键盘输入三个整数x,y和z,按从大到小的顺序输出它们的值。

输入

输入三个整数x,y和z。

输出

按从大到小的顺序输出它们的值。

样例输入

20 16 18

样例输出

20 18 16
#include <stdio.h>

int main(void)//
{
    int x, y, z, temp;
    scanf("%d %d %d", &x, &y, &z);
    if (x < y){
        temp = y;
        y = x;
        x = temp;
    }
    if (x < z){
        temp = x;
        x = z;
        z = temp;
    }
    if (y < z){
        temp = z;
        z = y;
        y = temp;
    }
    printf("%d %d %d", x, y, z);
    return 0;
}

1023: 大小写转换

题目描述

输入一个字母,若是小写字母,则变为大写输出,否则,原样输出。

输入

输入为一个字符。

输出

按题目要求输出一个字符,单独占一行。

样例输入

a

样例输出

A
#include <stdio.h>

int main(void)//
{
    char word;
    scanf("%c", &word);
    if (word >= 97 && word <= 123) {
        printf("%c", word - 32);
    } else{
        printf("%c", word);
    }
    return 0;
}

1024: 计算字母序号

题目描述

输入一个英文字母(可能是大写,也可能是小写),输出该字母在字母表中的序号(’a’和’A’的序号为1)。

输入

输入只有一个英文字母。

输出

输出一个整数,表示该字母在字母表的序号,输出单独占一行。

样例输入

D

样例输出

4
#include <stdio.h>

int main(void)//
{
    char word;
    scanf("%c", &word);
    if (word >= 65 && word < 91){
        printf("%d", word - 64);
    } else if (word >= 97 && word < 123){
        printf("%d", word - 96);
    }
    return 0;
}

1025: 最大字符

题目描述

给你三个ASCII字符(不含空白字符:包括空格、制表符\t、回车换行符\n),找出其中最大的那个

输入

输入包含三个字符,之间有一个空格隔开。

输出

输出ASII码最大的那个字符,占一行。

样例输入

a b c

样例输出

c
#include <stdio.h>

int main(void)//
{
    char word1, word2, word3;
    scanf("%c %c %c",&word1, &word2, &word3);
    if (word1 > word2){
        if (word1 > word3){
            printf("%c", word1);
        } else{
            printf("%c", word3);
        }
    } else{
        if (word2 > word3){
            printf("%c", word2);
        } else{
            printf("%c", word3);
        }
    }
    return 0;
}

1026: 字符类型判断

题目描述

从键盘输入一个字符,判断该字符是否大写字母、小写字母、数字字符或其他字符。分别输出对应的提示信息。

输入

输入一个字符。

输出

如果该字符是大写字母,则输出“upper”;若是小写字母,则输出“lower”;若是数字字符,则输出“digit”;若是其他字符,则输出“other”。(输出不含双引号)。

样例输入

1

样例输出

digit
#include <stdio.h>

int main(void)//
{
    char c;
    scanf("%c", &c);
    if (c >= 'A' && c <= 'Z'){
        printf("upper");
    }else if (c >= 'a' && c <= 'z'){
        printf("lower");
    }else if (c >= '0' && c <= '9'){
        printf("digit");
    } else{
        printf("other");
    }
    return 0;
}

1027: 判断水仙花数

题目描述

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:

“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33。

现在要求输入一个三位数,判断该数是否是水仙花数,如果是,输出“yes”,否则输出“no”

输入

输入一个三位的正整数。

输出

输出“yes”或“no”。

样例输入

153

样例输出

yes
#include <stdio.h>
#include <math.h>

int main(void)//
{
    int num, a, b, c;
    scanf("%d", &num);
    a = num % 10;
    b = num / 10 % 10;
    c = num / 100;
    if (num == pow(a, 3) + pow(b, 3) + pow(c, 3)){
        printf("yes");
    }else{
        printf("no");
    }
    return 0;
}

1028: I love 闰年!

题目描述

根据一个年份,判断是否是闰年。

输入

输入为一个整数,表示一个年份。

输出

如果是闰年,输出"Yes",否则输出"No"。输出单独占一行。

样例输入

2012

样例输出

Yes
#include <stdio.h>

int main(void)//
{
    int year;
    scanf("%d", &year);
    if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)){
        printf("Yes");
    } else{
        printf("No");
    }
    return 0;
}

1029: 三角形判定

题目描述

给你三个正整数,判断用这三个整数做边长是否能构成一个三角形。

输入

输入为三个正整数(32-int),中间有一个空格隔开。

输出

如果能构成三角形,输出"Yes",否则输出"No"

样例输入

3 4 5

样例输出

Yes
#include <stdio.h>

int main(void)//
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    if ((a + b > c) && (a + c > b) && (b + c > a)){
        printf("Yes");
    } else{
        printf("No");
    }
    return 0;
}

1030: 判断直角三角形

题目描述

输入三个正整数,判断用这三个整数做边长是否能构成一个直角三角形。

输入

输入三个正整数。

输出

能否构成直角三角形。如能输出:yes.若不能,输出:no。

样例输入

6 8 10

样例输出

yes
#include <stdio.h>

int main(void)//
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    if ((a * a + b * b == c * c) || (b * b + c * c == a * a) || (a * a + c * c == b * b)){
        printf("yes");
    }else{
        printf("no");
    }
    return 0;
}

1031: 判断点在第几象限

题目描述

从键盘输入2个整数x、y值,表示平面上一个坐标点,判断该坐标点处于第几象限,并输出相应的结果。

输入

输入x,y值表示一个坐标点。坐标点不会处于x轴和y轴上,也不会在原点。

输出

输出对应的象限,用数字1,2,3,4分别对应四个象限。

样例输入

1 1

样例输出 复制

1
#include <stdio.h>

int main(void)//
{
    int x, y;
    scanf("%d %d", &x, &y);
    if (x > 0 & y > 0){
        printf("1");
    } else if (x < 0 & y > 0){
        printf("2");
    } else if (x < 0 & y < 0){
        printf("3");
    } else if(x > 0 & y < 0){
        printf("4");
    } else{
        printf("你输入的坐标有误");
    }
    return 0;
}

1032: 员工薪水

题目描述

某公司规定,销售人员工资由基本工资和销售提成两部分组成,其中基本工资是1500元/月,销售提成规则如下:
销售额小于等于10000元时,按照5%提成;
销售额大于10000元但小于等于50000元时,超出10000部分按照3%提成;
销售额大于50000元时,超出50000部分按照2%提成。
编写程序,根据销售额计算员工收入。

输入

输入一个整数表示销售额

输出

输出员工的薪水,保留2位小数。

样例输入

30000

样例输出

2600.00
#include <stdio.h>

int main(void)//
{
    int x;
    scanf("%d", &x);
    if (x < 10000){
        printf("%.2lf", 1500 + x * 0.05);
    } else if (x < 50000){
        printf("%.2lf", 1500 + 500 + (x - 10000) * 0.03);
    } else{
        printf("%.2lf", 1500 + 500 + 1200 + (x - 50000) * 0.02);
    }
    return 0;
}

1033: 五级制成绩

题目描述

给定一个百分制成绩, 请根据百分制成绩输出其对应的等级。转换关系如下:
90分以上为’A’,80~89为’B’, 70~79为’C’, 60~69为’D’,60分以下为’E’。

输入

一个百分制成绩(0~100的整数)。

输出

输出对应的等级

样例输入

100

样例输出

A
#include <stdio.h>

int main(void)//
{
    int x;
    scanf("%d", &x);
    if (x >= 90){
        printf("A");
    } else if (x >= 80 & x < 90){
        printf("B");
    }else if (x >= 70 & x < 80){
        printf("C");
    } else if (x >= 60 & x < 70){
        printf("D");
    } else{
        printf("E");
    }
    return 0;
}

1034: 夏季促销

题目描述

商场夏季促销,购物500元以下,不打折;购物500元(含)以上,95折;购物1000元(含)以上,9折;购物3000元(含)以上,85折;购物5000元(含)以上,8折。根据消费金额,确定用户实际需要支付的数目。

输入

输入一个实数,表示消费金额。

输出

输出一个实数,表示用户实际需要支出的数目,保留两位小数。

样例输入

5100 

样例输出

4080.00
#include <stdio.h>

int main(void)//
{
    int x;
    scanf("%d", &x);
    if (x < 500 ){
        printf("%.2lf", x);
    } else if (x >= 500 & x < 1000){
        printf("%.2lf", x * 0.95);
    }else if (x >= 1000 & x < 3000){
        printf("%.2lf", x * 0.9);
    }else if(x >= 3000 & x < 5000){
        printf("%.2lf", x * 0.85);
    } else{
        printf("%.2lf", x * 0.8);
    }
    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对应的函数值。

样例输入

2

样例输出

-3
#include <stdio.h>

int main(void)//
{
    int x, y;
    scanf("%d", &x);
    if (x < -2){
        y = 7 - 2 * x;
    }
    if (x >= -2 & x < 3){
        if (x * 3 + 2 > 0){
            y = 5 - (3 * x + 2);
        } else{
            y = 5 + (3 * x + 2);
        }
    }
    if (x >= 3){
        y = 3 * x + 4;
    }
    printf("%d", y);
    return 0;
}

1036: 某年某月有多少天

题目描述

给你一个年份和月份,求该月有多少天

输入

一个年份(正整数),一个月份(1-12),中间有一个空格隔开

输出

该月的天数,单独占一行。

样例输入

2012 2

样例输出

29

#include <stdio.h>

int main(void)//
{
    int year, month;
    scanf("%d %d", &year, &month);
    if (((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) && month == 2){
        month = 0;
    }
    switch (month) {
        case 0:
            printf("29");
            break;
        case 1:
            printf("31");
            break;
        case 2:
            printf("28");
            break;
        case 3:
            printf("31");
            break;
        case 4:
            printf("30");
            break;
        case 5:
            printf("31");
            break;
        case 6:
            printf("30");
            break;
        case 7:
            printf("31");
            break;
        case 8:
            printf("31");
            break;
        case 9:
            printf("30");
            break;
        case 10:
            printf("31");
            break;
        case 11:
            printf("30");
            break;
        case 12:
            printf("31");
        default:
            printf("你输入的有误");
    }
    return 0;
}

1037: 四则运算

题目描述

给你一个简单的四则运算表达式,包含两个实数和一个运算符,请编程计算出结果

输入

表达式的格式为:s1 op s2, s1和s2是两个实数,op表示的是运算符(+,-,*,/),也可能是其他字符

输出

如果运算符合法,输出表达式的值;若运算符不合法或进行除法运算时除数是0,则输出"Wrong input"。最后结果小数点后保留两位。

样例输入

1.0 + 1.0

样例输出

2.00

提示

除数是0,用|s2|<1e-10(即10的-10次方)判断
#include <stdio.h>
#include <math.h>

int main(void)//
{
    double s1, s2;
    char op;
    scanf("%lf %c %lf",&s1, &op, &s2);
    switch (op) {
        case '+':
            printf("%.2lf", s1 + s2);
            break;
        case '-':
            printf("%.2lf", s1 - s2);
            break;
        case '*':
            printf("%.2lf", s1 * s2);
            break;
        case '/':
            if (fabs(s2) < 1e-10){
                printf("Wrong input");
            } else{
                printf("%.2lf", s1 / s2);
            }
            break;
        default:
            printf("Wrong input");
    }
    return 0;
}

1038: 绝对值最大

题目描述

输入3个整数,输出绝对值最大的那个数。

输入

输入包含3个int范围内的整数,用空格隔开。

输出

输出三个数中绝对值最大的数,单独占一行。若绝对值最大的数不唯一,则输出最先出现的那个。例如,若输入为1 -3 3,则输出为-3;若输入为1 3 -3则输出为3。

样例输入 复制

1 2 -3

样例输出 复制

-3
#include <stdio.h>
#include <math.h>

int main(void)//
{
    int a, b, c, max;
    scanf("%d %d %d", &a, &b, &c);
    if (fabs(a) >= fabs(b)){
        max = a;
    } else{
        max = b;
    }
    if (fabs(max) < fabs(c)){
        max = c;
    }
    printf("%d", max);
    return 0;
}

1039: n个数求和

题目描述

输入一个整数n和n个整数,输出这n个整数的和。

输入

输入有两行:第一行是一个正整数n,第二行是n个整数。

输出

输出一个整数,即n个数的和。输出单独占一行。

样例输入 复制

3
7 3 2

样例输出 复制

12
#include <stdio.h>

int main(void)//
{
    int n, a, sum = 0;
    scanf("%d", &n);
    while (n){
        scanf("%d", &a);
        sum += a;
        n--;
    }
    printf("%d", sum);
    return 0;
}

1040: 数列求和1

题目描述

输入一个整数n,输出数列1+1/3+1/5+……前n项的和。

输入

输入只有一个正整数n。

输出

结果保留2为小数,单独占一行

样例输入

3

样例输出

1.53
#include <stdio.h>

int main(void)//
{
    int n;
    double sum = 0;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        sum += 1 / (2.0 * i - 1);
    }
    printf("%.2lf", sum);
    return 0;
}

1041: 数列求和2

题目描述

输入一个整数n,输出数列1-1/3+1/5-……前n项的和。

输入

输入只有一个整数n。

输出

结果保留2为小数,单独占一行。

样例输入

3

样例输出

0.87
#include <stdio.h>
#include <math.h>

int main(void)//
{
    int n;
    double sum;
    scanf("%d", &n);
    for (int i = 1, j = 0; i < 2 * n; i += 2, j++) {
        sum += 1.0 / i * pow(-1,j);
    }
    printf("%.2lf", sum);
    return 0;
}

1042: 数列求和3

题目描述

求1-2/3+3/5-4/7+5/9-6/11+…的前n项和,结果保留3位小数。

输入

输入正整数n(n>0)。

输出

输出一个实数,保留3位小数,单独占一行。

样例输入

5

样例输出

0.917
#include <stdio.h>
#include <math.h>

int main(void)//
{
    int n;
    double sum;
    scanf("%d", &n);
    for (int i = 1, j = 0; i <= n; i++, j++) {
        sum += i * 1.0 / (2 * i - 1) * pow(-1, j);
    }
    printf("%.3lf", sum);
    return 0;
}

1043: 最大值

题目描述

输入一个整数n和n个整数,输出这n个整数的最大值。

输入

输入有两行:第一行是一个正整数n,第二行是n个整数。

输出

输出包含一个整数,即n个数中的最大值,单独占一行。

样例输入

4
3 7 5 6

样例输出

7
#include <stdio.h>

int main(void)//
{
    int n, max;
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
        if (i == 0){
            max = arr[0];
        }
        if (max < arr[i]){
            max = arr[i];
        }
    }
    printf("%d", max);
    return 0;
}

1044: 不及格率

题目描述

输入n和n个学生成绩(实数),输出不及格率。

输入

输入的第一行是一个整数n,第二行是n个实数,用空格隔开。

输出

输出一个实数,表示不及格率,结果保留2位小数,单独占一行。

样例输入

8
98  45 86 79 56 75 90 70

样例输出

0.25
提示
注意,不及格率为0时,输出0.00
#include <stdio.h>

int main(void)//
{
    int n, pass = 0;
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
        if (arr[i] < 60){
            pass++;
        }
    }
    if (pass == 0){
        printf("0.00");
    } else{
        printf("%.2lf", pass  * 1.0 / n);
    }
    return 0;
}

1045: 数值统计

题目描述

统计给定的n个数中,负数、零和正数的个数。

输入

输入的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个整数

输出

输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。

样例输入

6 0 1 2 3 -1 0

样例输出

1 2 3
#include <stdio.h>

int main(void)//
{
    int n, a = 0, b = 0, c = 0;
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
        if (arr[i] < 0) a++;
        if (arr[i] == 0) b++;
        if (arr[i] > 0)c++;
    }
    printf("%d %d %d", a, b, c);
    return 0;
}

1046: 奇数的乘积

题目描述

给你n个整数,求他们中所有奇数的乘积。

输入

第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。

输出

输出n个数中的所有奇数的乘积,占一行。

样例输入

5 2 5 4 6 7

样例输出

35
#include <stdio.h>

int main(void)//
{
    int n, sum = 1;
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
        if (arr[i] % 2 != 0){
            sum *= arr[i];
        }
    }
    printf("%d", sum);
    return 0;
}

1047: 对数表

题目描述

输入两个正整数m和n,输出m到n之间每个整数的自然对数。

输入

输入包括两个整数m和n(m<=n),之间用一个空格隔开。

输出

每行输出一个整数及其对数,整数占4列,对数占8列,对数保留4位小数。

样例输入

2 4

样例输出

   2  0.6931
   3  1.0986
   4  1.3863

1048: 阶乘表

题目描述

输入一个正整数n(n<=20),输出1到n之间阶乘表。

输入

输入只有一个正整数n。

输出

输出1到n之间的阶乘表,格式见输出样例。每行两个数据,第一个数据占4列,第二个数据占20列,左对齐。

样例输入

5

样例输出

1   1                   
2   2                   
3   6                   
4   24                  
5   120 
#include <stdio.h>

int main(void)//
{
    int n;
    double sum = 1.0;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        sum = sum * i;
        printf("%-4d%-20.0lf\n", i, sum);
    }
    return 0;
}

1049: 平方和与立方和

题目描述

给定两个整数m和n,求出m~n这段连续的整数中所有偶数的平方和以及所有奇数的立方和。

输入

由两个整数m和n组成,你可以假定m<=n.

输出

应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。
你可以认为32位整数足以保存结果。

样例输入

2 5

样例输出

20 152
int main(void)//
{
    int m, n;
    double sum1 = 0.0, sum2 = 0.0;
    scanf("%d %d", &m, &n);
    for (int i = m; i <= n; i++) {
        if (i % 2 == 0){
            sum1 += pow(i, 2);
        } else{
            sum2 += pow(i, 3);
        }
    }
    printf("%.0lf %.0lf", sum1, sum2);
    return 0;
}

1050: 阶乘的累加和

题目描述

求1! + 2! + ……n!

输入

输入一个整数n,你可以假定n不大于10。

输出

输出一个整数,即阶乘累加的结果,单独占一行。

样例输入

4

样例输出

33
#include <stdio.h>

int main(void)//
{
    int n, sum = 0;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        int factory = 1;
        for (int j = 1; j <= i; j++) {
            factory *= j;
        }
        sum += factory;
    }
    printf("%d", sum);
    return 0;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值