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;
}