第1关:逐一挑出来
任务描述
本关需要完成一个输出某个三位数各个位上的数字的小程序。
相关知识
算数运算符
%是取模运算符,获得整除后的余数。
/是通过分子除以分母,获得整除后的整数部分。
floor
floor()是返回一个浮点型的整数部分,即向下取整。
语法:
floor(double x)
说明:x是需要传入的浮点型数。
举例如下:
float val = 1.2floor(val) = 1
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
输入一个三位数的整数,分别输出其个位、十位、百位上的数字。
注意:
- 输出的各数字间有一个空格。
 
举例说明:
测试输入:345。 预期输出:5 4 3 。
提示:方法不唯一,可以尽量尝试多种方式实现。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
# include<stdio.h>
# include<math.h>
int main()
{ 
    /*********begin*********/
    int n;
    scanf("%d",&n);
    while(n!=0)
    {
        printf("%d ",n%10);
        n=n/10;
    }
	printf("\n");
    return 0;
	/*********end*********/
} 
第2关:我不喜欢4
任务描述
本关需要统计出10000至99999的整数之中,不包含数值4的整数个数的小程序。
相关知识
我不想再啰嗦各种知识点了,而我相信大家经过反复的练习,已经将该记住的都记住了,那么我们直接看代码回顾吧!
代码片段1:
// 当分数score小于60时,输出"考试不合格!"int score = 58;if (score < 60){System.out.println("考试不合格!");}
代码片段2:

输出结果:
不及格这个月零花钱没啦!这个月零花钱没啦
代码片段3:
// 当分数score大于等于60时输出"考试合格!",否则输出"考试不合格!"int score = 80;if (score >= 60)System.out.println("考试合格!");else {System.out.println("考试不合格!");}
代码片段4:
#include <stdio.h>int main (){/* 局部变量定义 */int a = 10;/* while 循环执行 */while( a < 20 ){printf("a 的值: %d", a);a++;}return 0;}
输出结果::
a 的值: 10a 的值: 11a 的值: 12a 的值: 13a 的值: 14a 的值: 15a 的值: 16a 的值: 17a 的值: 18a 的值: 19
代码片段5:
for(var a=10; a<20 ;i++){printf("a 的值: %d", a);}
输出结果:
a 的值: 10a 的值: 11a 的值: 12a 的值: 13a 的值: 14a 的值: 15a 的值: 16a 的值: 17a 的值: 18a 的值: 19
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
统计10000至99999中,不包含4的数值的个数。
测试说明:
预期输入: 预期输出:10000~99999中不包含4的个数为:52488。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
#include<stdio.h>
int main() 
{
/*********begin*********/
int a,j,i;
int s=0;
for(i=10000;i<=99999;i++)
{
    a=i;
    j=0;
    while(a)
    {
        j=a%10;
        if(j==4)
        break;
        a/=10;
    }
    if(j!=4)
    s++;
}
printf("10000~99999中不包含4的个数为:%d",s);
/*********end*********/
} 
第3关:一元二次方程,其实很简单
任务描述
本关需要完成求解指定一元二次方程式的根的小程序。效果如下:
测试集输入:-2.5 3.8 1.2。 测试集输出:x1=-0.27 x2=1.79。
相关知识
if-else语句
if...else比if语句的操作多了一步,当条件成立时,则执行 if 部分的代码块; 条件不成立时,则进入 else 部分。
例如,如果今天不下雨,就出门逛街,否则就宅在家玩游戏。
用法如下:
if (<条件>) {<条件成立执行的代码>}else {<条件不成立执行的代码>}
执行过程如下:

例如:
// 当分数score大于等于60时输出"考试合格!",否则输出"考试不合格!"int score = 80;if (score >= 60)System.out.println("考试合格!");else {System.out.println("考试不合格!");}
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
求ax2+bx+c=0方程的根。
由键盘输入任意值a,b,c,需要在程序中进行判断:
如果a=0,输出错误提示系数a不能为零; 如果b2−4ac<0,输出方程无实根的信息; 如果b2−4ac>=0,计算并输出方程的两个实根。
测试说明:
测试输入:2 3 4。 预期输出:方程无实根。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
#include <stdio.h>
#include<math.h>
int main()
{
	/*********begin*********/
float a,b,c,x1,x2,s;
scanf("%f%f%f",&a,&b,&c);
s=b*b-4*a*c;
x1=(-b+sqrt(s))/(2*a);
x2=(-b-sqrt(s))/(2*a);
if(a==0)
printf("系数a不能为零\n");
else
{
    if(s<0)
    printf("方程无实根\n");
    if(s>=0)
    printf("x1=%.2f x2=%.2f",x1,x2);
}
return 0;
	/*********end*********/
} 
第4关:复数不再是难题
任务描述
本关需要完成复数运算的小程序。效果如下:
测试集输入:2.5 3.6 1.5 4.9//依次为a,b,c,d。
测试集输出:1.00+-1.30i //无论a ,b是否小于等于0都按该a+bi的输出。
相关知识
运算公式
(a+i*b)+(c+i*d) = (a+c)+i*(b+d)(a+i*b)-(c+i*d) = (a-c)+i*(b-d)(a+i*b)*(c+i*d) = (ac-bd)+i*(bc+ad)
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:
设有两个复数a+i*b和c+i*d,要求:
-  
定义一个结构体类型来描述复数;
 -  
复数之间的加法、减法、乘法和除法分别用不用的函数来实现;
 -  
必须使用结构体指针的方法把函数的计算结果返回。
 
输入格式:
输入只有一行,其格式为:运算符号(+,-,*)a, b ,c, d。
输出格式:
输出:a+bi,输出时不管a ,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。
注:
- 使用
scanf和printf输入输出,要输出保留两位小数点,使用%.2lf。 
测试举例:
测试输入:* 2.5 3.6 1.5 4.9。 预期输出:-13.89+17.65i。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
#include<stdio.h>  
#include<malloc.h>  
#include<stdlib.h>  
typedef struct {  
        double real;  
        double i;  
}complex;  
 complex* add(complex a, complex b){  
    /*********begin*********/
complex *c;
    c=(complex*)malloc(sizeof(complex));
    c->real=a.real+b.real;
    c->i=a.i+b.i;
    return c;
    /*********end*********/
 }  
 complex* minus(complex a, complex b){  
    /*********begin*********/
complex *c;
    c=(complex*)malloc(sizeof(complex));
    c->real=a.real-b.real;
    c->i=a.i-b.i;
    return c;
    /*********end*********/
 }  
 complex* multiply(complex a, complex b){  
    /*********begin**********/
complex *c;
    c=(complex*)malloc(sizeof(complex));
    c->real=(a.real*b.real)-(a.i*b.i);
    c->i=a.real*b.i+a.i*b.real;
    return c;
    /*********end*********/  
 }  
int main()  
{     
    /*********begin**********/
char c;
    complex a,b;
    complex d;
    scanf("%c%lf%lf%lf%lf",&c,&a.real,&a.i,&b.real,&b.i);
    switch(c){
    case '+':
        d=*add(a,b);
        break;
    case '-':
        d=*minus(a,b);
        break;
    case '*':
        d=*multiply(a,b);
        break;
    }
    if(d.i<0)
        printf("%.2lf+(%.2lf)i",d.real,d.i);
    else
        printf("%.2lf+%.2lfi",d.real,d.i);
    return 0;
    /*********end**********/
}  
 










