第1关:谁是小偷?
100
- 任务要求
- 参考答案
- 评论10
任务描述
本关任务:判断谁是小偷。
警察局抓了 a,b,c,d 四名偷窃嫌疑犯,其中只有一人是小偷。审问中:
-
a 说:“我不是小偷。”
-
b 说:“ c 是小偷。”
-
c 说:“小偷肯定是 d。”
-
d 说:“ c 在冤枉人。”
现在已经知道四个人中三人说的是真话,一人说的是假话,问到底谁是小偷?
编程要求
请在右侧编辑器Begin-End
处补充代码,完成本关任务,结果只需输出小偷是谁即可,例如:a is a thief
。
测试说明
平台会对你编写的代码进行测试,输出结果为正确答案时则通关。
开始你的任务吧,祝你成功!
#include <stdio.h>
void main()
{
/********** Begin **********/
int x;
for(x=1;x<=4;x++)
if((x!=1)+(x==3)+(x==4)+(x!=4)==3)
{
printf("%c is a thief\n",'a'+x-1);
}
printf("\n");
/********** End **********/
}
第2关:预测竞赛成绩
100
- 任务要求
- 参考答案
- 评论10
任务描述
本关任务:输出学生预测的竞赛成绩。
三位老师对某次数学竞赛进行了预测。他们的预测如下:
-
甲说:学生 A 得第一名,学生 B 得第三名。
-
乙说:学生 C 得第一名,学生 D 得第四名。
-
丙说:学生 D 得第二名,学生 A 得第三名。
竞赛结果表明,他们都说对了一半,说错了一半,并且无并列名次,试编程输出 A、B、C、D 各自的名次。
编程要求
请在右侧编辑器Begin-End
处补充代码,完成本关任务,输出格式为:A是第X名,B是第X名,C是第X名,D是第X名。
,其中 x 表示他们各自的名次,用阿拉伯数字替换即可。
测试说明
平台会对你编写的代码进行测试,输出结果为正确答案时则通关。
开始你的任务吧,祝你成功!
#include <stdio.h>
#include <stdlib.h>
void main()
{
/********** Begin **********/
int a,b,c,d;
for(a=1;a<=4;a++){
for(b=1;b<=4;b++){
if(a!=b){
for(c=1;c<=4;c++){
d=10-a-b-c;
if((c!=a)&&(c!=b)){
if((d!=a)&&(d!=b)&&(d!=c)){
if(((a==1)+(b==3)==1)&&((c==1)+(d==4)==1)&&((d==2)+(a==3)==1))
printf("A是第%d名,B是第%d名,C是第%d名,D是第%d名。",a,b,c,d);
}
}
}
}
}
}
/********** End **********/
}
第3关:判断一个整数能否被3,5,7整除
100
- 任务要求
- 参考答案
- 评论10
任务描述
本关任务,编写算法对输入的一个整数,判断它能否被 3,5,7 整除,并输出以下信息之一:
-
能同时被 3,5,7 整除;
-
能被其中两数(要指出哪两个)整除;
-
能被其中一个数(要指出哪一个)整除;
-
不能被 3,5,7 任一个整除。
编程要求
请在右侧编辑器Begin-End
处补充代码,完成本关任务。
测试说明
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
测试输入:210
预期输出:能被3、5、7同时整除
开始你的任务吧,祝你成功!
#include <stdio.h>
void main()
{
/********** Begin **********/
long n;
int k;
scanf("%ld",&n);
k=(n%3==0)*1+(n%5==0)*2+(n%7==0)*4;
switch(k){
case 7:printf("能被3、5、7同时整除");
break;
case 6:printf("能被5、7整除");
break;
case 5:printf("能被3和7整除");
break;
case 4:printf("能被7整除");
break;
case 3:printf("能被3和5整除");
break;
case 2:printf("能被5整除");
break;
case 1:printf("能被3整除");
break;
case 0:printf("不能被3、5、7中的任何一个整除");
break;
}
/********** End **********/
}