ZZUIL题解1081-1090

1081: n个数求和 (多实例测试)

1082: 敲7(多实例测试)

1083: 数值统计(多实例测试)

1084: 计算两点间的距离(多实例测试)

1085: 求奇数的乘积(多实例测试)

1086: ASCII码排序(多实例测试)

1087: 获取出生日期(多实例测试)

1088: 手机短号 (多实例)

1089: 阶乘的最高位

1090: 整数幂(多实例测试)

1081: n个数求和 (多实例测试)

题目描述

求n个整数的和。

输入

输入第一行是一个整数T,表示有T组测试实例;
每组输入包括两行:
第一行一个数n表示接下来会有n个整数;
第二行空格隔开的n个数。

输出

对于每组输入,在一行输出n个数的和(保证和不会超出int类型的范围)!

样例输入 Copy

2
3
1 2 3
4
-1 0 -19 22

样例输出 Copy

6
2

提示

初做多实例测试,注意累加和变量赋初值的位置。

来源/分类
*
AC代码:

#include<stdio.h>
int main()
{
    int m,n,numb,sum;
    scanf("%d", &m);
    while(m--){
        sum=0;
        scanf("%d", &n);
        for(int i=1; i<=n; i++){
            scanf("%d", &numb);
            sum+=numb;
        }
        printf("%d\n", sum);    
    }
    return 0;
}

1082: 敲7(多实例测试)

题目描述

输出7和7的倍数,还有包含7的数字例如(17,27,37…70,71,72,73…)

输入

首先输入一个整数t,表示有t组数据。
然后有t行,每行一个整数N。(N不大于30000)

输出

对于每组数据 ,输出从小到大排列的不大于N的与7有关的数字。每组数据占一行,每个数字后面有一个空格;

样例输入 Copy

2
20
30

样例输出 Copy

7 14 17
7 14 17 21 27 28

来源/分类
AC代码:

#include<stdio.h>
#include<math.h>
int judge(int n){
    if(n%7==0)
        return 1;
    while(n){
        if(n%10==7)
            return 1;
        n/=10;
    }
    return 0;
}
int main()
{
    int m,n,i;
    scanf("%d", &m);
    while(m--){
        scanf("%d", &n);
        for(i=1; i<=n; i++){
            if(judge(i)==1)
            printf("%d ", i);
        }
        printf("\n");   
    }
    return 0;
}

1083: 数值统计(多实例测试)

题目描述

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

输入

输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。

输出

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

样例输入 Copy

6 0 1 2 3 -1 0
5 1 2 3 4 0.5
0

样例输出 Copy

1 2 3
0 0 5

来源/分类
**
AC代码:

#include<stdio.h>
int main()
{
    int n,i,total1,total2,total3;
    double numb;
    while(scanf("%d", &n),n!=0){
        total1=0;total2=0;total3=0;
        for(i=1; i<=n; i++){
            scanf("%lf", &numb);
            if(numb<0)
                total1++;
            else if(numb==0)
                total2++;
            else
                total3++;
        }
        printf("%d %d %d\n", total1,total2,total3);
    }
    return 0;
}

1084: 计算两点间的距离(多实例测试)

题目描述

输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。

输入

输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。

输出

对于每组输入数据,输出一行,结果保留两位小数。

样例输入 Copy

0 0 0 1
0 1 1 0

样例输出 Copy

1.00
1.41

来源/分类
*
AC代码:

#include<stdio.h>
#include<math.h>
int main()
{
    double x1,x2,y1,y2,dis;
    while(scanf("%lf %lf %lf %lf", &x1,&y1,&x2,&y2)!=EOF){
        dis=sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1));
        printf("%.2f\n", dis);
    }
    return 0;
}

1085: 求奇数的乘积(多实例测试)

题目描述

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

输入

输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。

输出

输出每组数中的所有奇数的乘积,对于测试实例,输出一行。

样例输入 Copy

3 1 2 3
4 2 3 4 5

样例输出 Copy

3
15

来源/分类
**
AC代码:

#include<stdio.h>
int main()
{
    int i,n,numb,mul;
    while(scanf("%d", &n)!=EOF){
        for(i=0; i<n; i++){
            scanf("%d", &numb);
            if(numb%2!=0){
                mul*=numb;
            }   
        }
        printf("%d\n", mul);
        mul=1;
    }
    return 0;
}

1086: ASCII码排序(多实例测试)

题目描述

输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

输入

输入数据有多组,每组占一行,由三个字符组成,之间无空格。

输出

对于每组输入数据,输出一行,字符中间用一个空格分开。

样例输入 Copy

qwe
ads
xzc

样例输出 Copy

e q w
a d s
c x z

提示

注意:scanf(“%c”,&ch)格式读字符时,所有字符都是有效输入,如回车符、空格符等,所以每行读取字符之后要处理最后的回车符。

来源/分类


AC代码:

#include<stdio.h>
int main()
{
    char ch1,ch2,ch3,temp;
    while(scanf("%c %c %c", &ch1,&ch2,&ch3)!=EOF){
        getchar();
        if(ch1>ch2){
            temp=ch1;
            ch1=ch2;
            ch2=temp;
        }
        if(ch2>ch3){
            temp=ch2;
            ch2=ch3;
            ch3=temp;
        }
        if(ch1>ch2){
            temp=ch1;
            ch1=ch2;
            ch2=temp;
        }
        printf("%c %c %c\n", ch1,ch2,ch3);
    }
    return 0;
}

1087: 获取出生日期(多实例测试)

题目描述

输入某人的18位身份证号,输出其出生日期。

输入

多实例测试。首先输入一个整数n,表示测试实例的个数,然后是n行,每行是一个18位身份证号。

输出

对于输入的每个身份证号,输出一行,即其对应的出生日期,输出格式为:yyyy-mm-dd。

样例输入 Copy

3
410106199411178657
410104198202095479
410122197911218097

样例输出 Copy

1994-11-17
1982-02-09
1979-11-21

提示

scanf()函数中,可用%md指定读取位数。

来源/分类
**
AC代码:

#include<stdio.h>
int main()
{
    int n,i,year,month,day;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%*6d%4d%2d%2d%*d",&year,&month,&day);
        printf("%d-%02d-%02d\n",year,month,day);
    }
    return 0;
}

1088: 手机短号 (多实例)

题目描述

大家都知道,手机号是一个11位长的数字串,同时,作为学生,还可以申请加入校园网,如果加入成功,你将另外拥有一个短号。假设所有的短号都是是 6+手机号的后5位,比如号码为13512345678的手机,对应的短号就是645678。
现在,如果给你一个11位长的手机号码,你能找出对应的短号吗?

输入

输入数据的第一行是一个N(N <= 200),表示有N组输入数据,接下来的N行每一行为一个11位的手机号码。

输出

输出应包括N行,每行包括一个对应的短号,输出应与输入的顺序一致。

样例输入 Copy

2
13512345678
13787600321

样例输出 Copy

645678
600321

提示

scanf()函数中,可用%md指定读取位数。

来源/分类
**
AC代码:

#include<stdio.h>
int main()
{
    int n,i,a;
    scanf("%d", &n);
    while(n--){
        scanf("%*6d%5d", &a);
        printf("6%05d\n", a);
    }
    return 0;
}

1089: 阶乘的最高位

题目描述

输入一个正整数n。输出n!的最高位上的数字。

输入

输入一个正整数n(n不超过1000)。

输出

输出n!的最高位上的数字。

样例输入 Copy

1000

样例输出 Copy

4

提示

注意double类型溢出问题。

来源/分类


AC代码:

#include<stdio.h>
int main()
{
    int n,i;
    double result=1.0;
    scanf("%d", &n);
    for(i=1; i<=n; i++){
        result*=i;
        while(result>=10){
            result/=10;
        }
    }
    int s = result;
    printf("%d\n", s);
    return 0;
}

1090: 整数幂(多实例测试)

题目描述

求A^B的最后三位数表示的整数(1<=A,B<=1000)

输入

第一行输入一个整数n,表示有n个测试实例,接着有n行,每行一个实例,给出两个正整数A,B

输出

针对每个测试实例,输出A^B的最后三位(没有前导0) ,单独占一行。

样例输入 Copy

2
2 3
12 6

样例输出 Copy

8
984

来源/分类


AC代码:

#include<stdio.h>
int main()
{
    int n,i,j,a,b;
     
    scanf("%d", &n);
    for(i=1; i<=n; i++){
        scanf("%d %d", &a,&b);
        int result=1;
        for(j=1; j<=b; j++){
            result*=a;
            result = result % 1000;
        }
        printf("%d\n", result);
    }
//  int s = result;
     
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

皮皮皮皮皮皮皮卡乒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值