本关需要完成一个输出某个三位数各个位上的数字的小程序。
%是取模运算符,获得整除后的余数。
/是通过分子除以分母,获得整除后的整数部分。
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*********/
- }
本关需要统计出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 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*********/
- }
本关需要完成求解指定一元二次方程式的根的小程序。效果如下:
测试集输入:-2.5 3.8 1.2。 测试集输出:x1=-0.27 x2=1.79。
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*********/
- }
本关需要完成复数运算的小程序。效果如下:
测试集输入: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**********/
- }