目录
1081: n个数求和 (多实例测试)
题目描述
求n个整数的和。
输入
输入第一行是一个整数T,表示有T组测试实例;
每组输入包括两行:
第一行一个数n表示接下来会有n个整数;
第二行空格隔开的n个数。
输出
对于每组输入,在一行输出n个数的和(保证和不会超出int类型的范围)!
样例输入 Copy
2 3 1 2 3 4 -1 0 -19 22
样例输出 Copy
6 2
提示
初做多实例测试,注意累加和变量赋初值的位置。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
int main()
{int a,t,i=1,i2,n,sum=0;
char b;
scanf("%d",&t);
while(i<=t)
{
scanf("%d",&n);
for(i2=1;i2<=n;i2++)
{
scanf("%d",&a);
scanf("%c",&b);
sum+=a;
}
printf("%d\n",sum);
i++;
sum=0;
}
return 0;
}
/**************************************************************
Problem: 1081
User: 542107230106
Language: C
Result: 正确
Time:1 ms
Memory:1044 kb
通过码:ixNzXk9jsCGxTCfJJpvCjVRScPU
****************************************************************/
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
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
int main()
{int t,n,i=1,i2;
scanf("%d",&t);
for(i=1;i<=t;i++)
{
scanf("%d",&n);
for(i2=1;i2<=n;i2++)
{if(n<=30000)
{if(i2%7==0||i2/1000%10==7||i2/100%10==7||i2/10%10==7||i2%10==7)
printf("%d ",i2);}
}
if(i+1<=t)//原来没有这行,所以多输出一个空行就错了
printf("\n");
}
return 0;
}
/**************************************************************
Problem: 1082
User: 542107230106
Language: C
Result: 正确
Time:14 ms
Memory:1044 kb
通过码:jhElDE424nexTCfJJpvCjVRScPY
****************************************************************/
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
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
int main()
{int n,i=1,zheng=0,fu=0,ling=0;
double m;
while(scanf("%d",&n)!=EOF)
{while(i<=n)
{if(n==0)
break;
scanf("%lf",&m);
if(m<0)
fu++;
if(fabs(m)<1e-10)
ling++;
if(m>0)
zheng++;
i++;
}
if(n!=0)
{printf("%d %d %d\n",fu,ling,zheng);
i=1;
fu=0;ling=0;zheng=0;}
else
break;
}
return 0;
}
/**************************************************************
Problem: 1083
User: 542107230106
Language: C
Result: 正确
Time:3 ms
Memory:1044 kb
通过码:3kR5UEo7si2xTCfJJpvCjVRScPc
****************************************************************/
1084: 计算两点间的距离(多实例测试)
题目描述
输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。
输入
输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
输出
对于每组输入数据,输出一行,结果保留两位小数。
样例输入 Copy
0 0 0 1 0 1 1 0
样例输出 Copy
1.00 1.41
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
int main()
{
double s,x1,y1,x2,y2;
while(scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2)!=EOF)
{
s=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
printf("%.2f\n",s);
}
return 0;
}
/**************************************************************
Problem: 1084
User: 542107230106
Language: C
Result: 正确
Time:1 ms
Memory:1068 kb
通过码:3h8lDRpjvCaxTCfJJpvCjVRScPA
****************************************************************/
1085: 求奇数的乘积(多实例测试)
题目描述
给你n个整数,求他们中所有奇数的乘积
输入
输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。
输出
输出每组数中的所有奇数的乘积,对于测试实例,输出一行。
样例输入 Copy
3 1 2 3 4 2 3 4 5
样例输出 Copy
3 15
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,n,j=1,i2,a[1100];
while(scanf("%d", &n)!=EOF)
{
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
i2=a[i];
}
for(i=1;i<=n;i++)
{
if(a[i]%2!=0)
j*=a[i];
}
printf("%d\n",j);
j=1;
}
return 0;
}
/**************************************************************
Problem: 1085
User: 542107230106
Language: C
Result: 正确
Time:1 ms
Memory:1044 kb
通过码:gx9yWk0zvSCxTCfJJpvCjVRScPE
****************************************************************/
1086: ASCII码排序(多实例测试)
题目描述
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入
输入数据有多组,每组占一行,由三个字符组成,之间无空格。
输出
对于每组输入数据,输出一行,字符中间用一个空格分开。
样例输入 Copy
qwe ads xzc
样例输出 Copy
e q w a d s c x z
提示
注意:scanf("%c",&ch)格式读字符时,所有字符都是有效输入,如回车符、空格符等,所以每行读取字符之后要处理最后的回车符。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
int main()
{char a,b,c,t;
while(scanf("%c%c%c",&a,&b,&c)!=EOF)
{
getchar();
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf("%c %c %c\n",a,b,c);
}
return 0;
}
/**************************************************************
Problem: 1086
User: 542107230106
Language: C
Result: 正确
Time:1 ms
Memory:1044 kb
通过码:ikV2UEo1siyxTCfJJpvCjVRScPI
****************************************************************/
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指定读取位数。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
int main()
{int n,a,b,c,d,e,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%6d",&a);
scanf("%4d",&b);
scanf("%2d",&c);
scanf("%2d",&d);
scanf("%4d",&e);
printf("%4d-%02d-%02d\n",b,c,d);
}
return 0;
}
/**************************************************************
Problem: 1087
User: 542107230106
Language: C
Result: 正确
Time:1 ms
Memory:1044 kb
通过码:3RcnW0g34HexTCfJJpvCjVRScPM
****************************************************************/
1088: 手机短号 (多实例)
题目描述
大家都知道,手机号是一个11位长的数字串,同时,作为学生,还可以申请加入校园网,如果加入成功,你将另外拥有一个短号。假设所有的短号都是是 6+手机号的后5位,比如号码为13512345678的手机,对应的短号就是645678。
现在,如果给你一个11位长的手机号码,你能找出对应的短号吗?
输入
输入数据的第一行是一个N(N <= 200),表示有N组输入数据,接下来的N行每一行为一个11位的手机号码。
输出
输出应包括N行,每行包括一个对应的短号,输出应与输入的顺序一致。
样例输入 Copy
2 13512345678 13787600321
样例输出 Copy
645678 600321
提示
scanf()函数中,可用%md指定读取位数。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
int main()
{int n,a,b,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%6d",&a);
scanf("%5d",&b);
printf("6%05d\n",b);
}
return 0;
}
/**************************************************************
Problem: 1088
User: 542107230106
Language: C
Result: 正确
Time:1 ms
Memory:1044 kb
通过码:2EJzWRg0vSCxTCfJJpvCjVRScPw
****************************************************************/
1089: 阶乘的最高位
题目描述
输入一个正整数n。输出n!的最高位上的数字。
输入
输入一个正整数n(n不超过1000)。
输出
输出n!的最高位上的数字。
样例输入 Copy
1000
样例输出 Copy
4
提示
注意double类型溢出问题。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
int main()
{int n,i;
double s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
s*=i;
while(s>=10)//不用if因为i很大时各位乘以i会大于100,这样就不是首位了
s=s/10;
}
printf("%d\n",(int)s);
return 0;
}
/**************************************************************
Problem: 1089
User: 542107230106
Language: C
Result: 正确
Time:0 ms
Memory:1044 kb
通过码:2hEkCEoy5iGxTCfJJpvCjVRScP0
****************************************************************/
1090: 整数幂(多实例测试)
题目描述
求A^B的最后三位数表示的整数(1<=A,B<=1000)
输入
第一行输入一个整数n,表示有n个测试实例,接着有n行,每行一个实例,给出两个正整数A,B
输出
针对每个测试实例,输出A^B的最后三位(没有前导0) ,单独占一行。
样例输入 Copy
2 2 3 12 6
样例输出 Copy
8 984
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
int main()
{int a,b,n,i,i2,c=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d",&a, &b);
if(b==0)
c=1;
else
{for(i2=1;i2<=b;i2++)
{
c*=a;
c=c%1000;//放后面会数据溢出
}
printf("%d\n",c);
} c=1;
}
return 0;
}
/**************************************************************
Problem: 1090
User: 542107230106
Language: C
Result: 正确
Time:1 ms
Memory:1044 kb
通过码:i0IjW0s64XSxTCfJJpvCjVRScfQ
****************************************************************/