100
任务描述
本关请完成将一个华氏温度F
,转换成摄氏温度C
输出的小程序。
相关知识
算术表达式
算术表达式是指数学课程中,由数字和运算符号组成的式子,可以简单清晰地记录或描述计算过程和内容。
例如:
(a-b)/c*2+'a'+15%-4
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End
区域内进行代码补充,具体任务如下:
输入一个华氏温度F
,要求输出摄氏温度C
。
计算公式为:C=5/9 (F−32)
,输出要有文字说明,取2
位小数。
效果如下:
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
验货啦,验货啦,开始你的任务吧!
#include
int main()
{
//获取参数方式 scanf
//int x =0;
//int y = 0;
//scanf("%d", &x);
//结果输出使用prinf
//printf("%d",x);
// 请在此添加你的代码
/********** Begin *********/
double C,F;
scanf("%lf",&F);
C=5.00/9.00*(F-32.00);
printf("摄氏温度为:%.2lf",C);
/********** End **********/
}
100
任务描述
本关需要使用for
循环控制语句来完成求分数序列和。
相关知识
让我们再次回顾C
语言循环控制语句for
循环。
for循环
在C
语言中,for
语句使用最为灵活,它完全可以取代 while
语句。它的一般形式为:
for(循环变量赋初值; 循环条件; 循环变量增量) 语句
它的执行过程如下图所示:
先求解表达式1
;
求解表达式2
,若其值为真(非0
),则执行for
语句中指定的内嵌语句,然后执行下面第3
步;若其值为假(0),则结束循环,转到第5
步;
求解表达式3
;
转回上面第2
步继续执行;
循环结束,执行for
语句下面的一个语句。
例如:
for( i=1; i<=100; i++ ) sum=sum+i;
for
语句使用注意事项:
省略了“表达式1
(循环变量赋初值)”,表示不对循环控制变量赋初值;
省略了“表达式2
(循环条件)”,则不做其它处理时便成为死循环;
省略了“表达式3
(循环变量增量)”,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。
编程要求
有一分数序列:2/1
,3/2
,5/3
,8/5
,13/8
,21/13
...求出这个数列的前n
项之和的整数部分。
n
的值运行时通过键盘输入给定,并且n<=30
。
输出值只保留整数(不要四舍五入)。
效果如下:
输入:20
。
输出:32
。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
验货啦,验货啦,开始你的任务吧!
#include
#include
int main()
{
//获取参数方式 scanf
//int x =0;
//int y = 0;
//scanf("%d", &x);
//结果输出使用prinf
//printf("%d",x);
// 请在此添加你的代码
/********** Begin *********/
long n,i;
double fz=2.0,fm=1.0,sum=0.0,t;
scanf("%ld",&n);
for(i=1;i<=n;i++){
sum+=fz/fm;
t=fz;
fz=fz+fm;
fm=t;
}
sum=floor(sum);
printf("%.0lf",sum);
/********** End **********/
}
100
任务描述
本关需要你完成一个求学生平均成绩的小程序。
相关知识
上关我们回顾了For
循环控制语句,本关我们继续回顾while
循环和do-while
循环语句。
while循环
while
循环的一般形式为:
while(表达式){
语句块
}
其执行过程如下图所示:
其中表达式称为循环条件,语句块称为循环体。
while
后面括号里表达式的值,若其结果非0
,则转入(2),否则转(3);由于是先执行判断后执行循环体,所以循环体可能一次都不执行。 循环体可以为空语句;
。
例如:
#include
int main(void){
int i=1, sum=0;
while(i<=100){
sum+=i;
i++;
}
printf("%d
",sum);
return 0;
}
do-while循环语句
do-while
循环的一般形式为:
do{
语句块
}while(表达式);
其执行过程如下图所示:
执行循环体,转(2);
计算while
后面括号里表达式的值,若其结果非0
,则转入(1),否则转(3);
退出循环,执行循环体下面的语句。
注意:
do……while
语句最后的分号(;)不可少,否则提示出错。循环体至少执行一次。例如:
#include
void main(void)
{
int i=1,s=0; /*赋初值*/
do
{
s=s+i; /*求一千以内奇数的和*/
i=i+2; /*这里是循环体*/
}
while(i<=1000); /*不要忘记分号,while这写条件,不满足则退出程序*/
printf("一千以内奇数的和为:%d
",s);
}
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End
区域内进行代码补充,具体任务如下:
输入:学生人数和每个人的成绩。 输出:平均成绩。
当输入的学生人数小于等于0
时,输出平均成绩为0
分!
效果如下:
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
验货啦,验货啦,开始你的任务吧!
#include
int main()
{
//获取参数方式 scanf
//int x =0;
//int y = 0;
//scanf("%d", &x);
//结果输出使用prinf
//printf("%d",x);
// 请在此添加你的代码
/********** Begin *********/
int n,i=1;
double scores,average,sum=0.0;
scanf("%d",&n);
if(n<=0){
printf("the number of students:the scores:average=0.00");
}
while(i<=n){
scanf("%lf",&scores);
sum+=scores;
i++;
}
average=sum/n;
printf("the number of students:the scores:average=%.2lf",average);
/********** End **********/
}
100
任务描述
本关需要你完成整数间进制转换的小程序。
相关知识
什么是进制?进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,类似的tally mark
计数等)。
对于任何一种进制---X
进制,就表示每一位置上的数运算时都是逢X进一
位。 十进制是逢十进一
,十六进制是逢十六进一
,二进制就是逢二进一
,以此类推,x
进制就是逢x进位
。
计算机中常用的进制有二进制、八进制、十进制、十六进制。本关我们将回顾十进制和十六进制。
十进制
十进制的基数为10
,数码由0
-9组成,计数规律逢十进一
。十进制编码几乎就是数值本身。
十六进制
十六进制,它由0-9
,A-F
(它们分别表示十进制数10~15
)组成,字母不区分大小写。十六进制数运算规律是逢十六进一
,即基数R=16=2^4
,通常在表示时用尾部标志H
或下标16
以示区别,在c
语言中用添加前缀0x
以表示十六进制数。
例如:十六进制数4AC8
可写成(4AC8)16
,或写成4AC8H
。
十六进制转十进制
把十六进制数按位权形式展开多项式和的形式,求其最后的和,就是其对应的十进制数——简称“按权求和”。
例:把(38A.11)16
转换为十进制数。
解:
(38A.11)16
=3×16的2次方+8×16的1次方+10×16的0次方+1×16的-1次方+1×16的-2次方
=768+128+10+0.0625+0.0039
=906.0664
十进制转十六进制
一个十进制整数转换为十六进制整数通常采用除十六取余法,即用十六连续除十进制数,直到商为0
,逆序排列余数即可得到——简称除十六取余法。
例:将25
转换为十六进制数。
解:
25÷16=1 余数9
1÷16=0 余数1
所以25=(19)16
编程要求
编写程序,将十进制正整数转成十六进制字符串输出。效果如下:
输入:17
。 输出:11
。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
验货啦,验货啦,开始你的任务吧!
#include
int main()
{
//获取参数方式 scanf
//int x =0;
//int y = 0;
//scanf("%d", &x);
//结果输出使用prinf
//printf("%d",x);
// 请在此添加你的代码
/********** Begin *********/
int n,a[100],i=0,m=0,yushu;
char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
scanf("%d",&n);
while(n>0){
yushu=n%16;
a[i++]=yushu;
n/=16;
}
for(i=i-1;i>=0;i--){
m=a[i];
printf("%c",hex[m]);
}
/********** End **********/
}
100
任务描述
本关需要你完成在数字中插入千分位分隔符的小程序。
相关知识
什么是千分位分隔符呢?千位分隔符,其实就是数字中的逗号。依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值。所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易认出数值。
在C
语言中编译千分位分隔符涉及到循环控制语句,if
嵌套语句等,总的来说就是循环判断综合。
例如:
int main()
{
int i = 1, n, m, p, q,t;
printf("Please input an integer:");
scanf("%d", &n);
t = n;//copy一个副本
printf("The result is:");
while ((n / 10) != 0){
n = n / 10;
i++;
}//到这 n不存在了
i = i - 1;
p = 1;
for (q = 1; q <= i; q++){
p = p * 10;
}
while (i >= 0){
m = t / p;
t = t - m*p;
printf("%d", m);
p = p / 10;
if (i % 3 == 0 && i != 0){
printf(",");
}
i = i - 1;
}
return 0;
}
编程要求
在输入的数字中插入千分位分隔符并将其输出。
效果如下:
输入:1234567
。 输出:1,234,567
。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
验货啦,验货啦,开始你的任务吧!
#include
int main()
{
//获取参数方式 scanf
//int x =0;
//int y = 0;
//scanf("%d", &x);
//结果输出使用prinf
//printf("%d",x);
// 请在此添加你的代码
/********** Begin *********/
long i=0,n,m,p=1,t;
scanf("%ld",&n);
t=n;
while ((n/10)!= 0){
n=n/10;
p*=10;
i++;
}
while (i>=0){
m=t/p;
t=t-m*p;
printf("%ld",m);
p=p/10;
if (i%3==0&&i!=0){
printf(",");
}
i--;
}
return 0;
/********** End **********/
}
100
任务描述
本关需要你完成一个常规的歌手评分系统的小程序。
相关知识
本关继续强化C
语言循环控制语句和if
判断语句练习。前面的几个关卡我们回顾了循环控制语句的while
循环语句、do-while
循环语句和for
循环语句,本关将带你回顾判断语句if
。
判断语句要求程序指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。
C
语言把任何非零和非空的值假定为 true
,把0
或null
假定为 false
。
if语句
用法如下:
if(表达式) 语句
功能:表达式为真,则执行语句;表达式为假,则跳过语句执行程序的下面的代码。
if
的控制范围:
if(表达式)
语句A;//属于If控制
语句B;//不属于if控制
if(表达式)
{
语句A;
语句B;
}
在一般情况下,为了代码的整齐、易懂,就算只有一条语句要控制,也会用{}
括起来。
编程要求
歌手评分系统:有7
个评委对歌手打分,请编程计算歌手的成绩。 规则:去掉一个最高分,去掉一个最低分,求平均分,就是歌手应得分。
效果如下:
输入:99 98.5 96 92.5 96.5 90 93
。 输出:score=95.30
。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
验货啦,验货啦,开始你的任务吧!
#include
#include
int main()
{
//获取参数方式 scanf
//int x =0;
//int y = 0;
//scanf("%d", &x);
//结果输出使用prinf
//printf("%d",x);
// 请在此添加你的代码
/********** Begin *********/
double a[7],t;
int i,j;
double num=0.0;
for(i=0;i<7;i++)
scanf("%lf",&a[i]);
for(i=0;i<7;i++){
for(j=0;j<7;j++){
if(a[j]