Educoder实训(C)
C语言学习----Educoder实训记录
麻辣小兔喵
纯粹和真理对我的吸引力是我对科学和哲学的动力。
展开
-
将整数递归转换成字符串
任务描述用递归法将一个整数n转换成字符串。例如,输入n为483,输出字符串 4 8 3,每个数字后面接一个空格用于隔开字符。输入一个整数n输出相应的用空格隔开的数字字符。特别注意:输出字符之间有空格测试说明样例输入:483样例输出:4 8 3代码如下#include<stdio.h>void solve(int n){ int temp=n%10; if(n/10>0) { solve(n/10); printf原创 2021-04-15 21:12:08 · 10238 阅读 · 5 评论 -
最大公约数和最小公倍数
任务描述题目描述:写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。编程要求请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,变量类型使用long long int。输入两个正整数输出最大公约数 最小公倍数如果输入的数中包含负数,则输出Input Error测试说明样例输入:6 15样例输出:3 30提示:负数没有最大公约数和最小公倍数;最大公约数和最小公倍数一定为正数,不可以为负数;原创 2021-04-15 21:12:49 · 3904 阅读 · 4 评论 -
亲密数
任务描述题目描述:两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。编程要求输入无需输入输出3000以内的全部亲密数(输出格式:(A,B),不加换行,不加分隔符号)一对亲密数只输出一次,小的在前测试说明样例输出:(220,284)(1184,1210)(2620,2924)提示:按照亲密数定义,要判断数a是否有亲密数,只要计算出a的全部因子的累原创 2021-01-25 13:34:11 · 1128 阅读 · 0 评论 -
编写函数求表达式的值
任务描述有如下表达式s = 1 + 1 / 3 + (1 * 2) / (3 * 5) + (1 * 2 * 3) / (3 * 5 * 7) + .... + (1 * 2 * 3 * .... * n) / (3 * 5 * 7 * ... * (2 * n + 1)) 。编写函数求给出的n所对应的表达式s的值。编程要求输入一个整数n输出输出表达式的值,保留小数点后10位的值。测试说明样例输入:4样例输出:1.5238095238代码如下#include<st原创 2021-01-25 13:31:55 · 8508 阅读 · 4 评论 -
回文数计算
任务描述本关任务:编写函数求区间[200,3000]中所有的回文数,回文数是正读和反读都是一样的数。如525, 1551编程要求输入无需输入输出输出区间[200,3000]中所有的回文数,一行一个回文数,不需要输出其它无关的字符。202212222232242…代码如下#include<stdio.h>int Hui(int a);int main(){ int m,n; for(m=200;m<=3000;m++) { if(Hui(m))原创 2021-01-25 13:29:18 · 3149 阅读 · 0 评论 -
求和
任务描述题目描述:给你一个n,要求你编写一个函数求1+2+…+n.编程要求输入输入一个n输出输出1+2+…+n的和测试说明样例输入:100样例输出:5050代码如下#include<stdio.h>int sum(int n);int main(){ int n; scanf("%d",&n); printf("%d",sum(n)); return 0;}int sum(int n){ if(n==1) return 1; e原创 2021-01-25 13:26:54 · 1395 阅读 · 0 评论 -
求水仙花数个数
任务描述输入两个三位正整数m和n,求[m,n]范围内有多少个水仙花数。一个三位数是水仙花数,如果它的各位数字的立方之和刚好等于自身。例如153是水仙花数,因为153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3。输入格式输入包含两个三位正整数m, n。m≤n。输出格式输出包含一个正整数,表示[m,n]范围内的水仙花数的个数。测试说明输入样例100 200输出样例1解释:在[100,200]范围内,只有一个水仙花数153.代码如下#include&l原创 2021-01-25 13:18:35 · 2532 阅读 · 0 评论 -
输出三角形
任务描述本关任务:编写小程序,输出边长为n的三角形。输入格式一个正整数n(n>=1)。输出格式边长为n的三角形,用+填充。注意三角形的最后一行的行首无空格。测试样例输入样例:4输出样例: + +++ ++++++++++++代码如下#include <stdio.h>int main(){ int n,i,j; scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j&l原创 2021-01-25 13:12:54 · 3583 阅读 · 0 评论 -
n钱买n鸡
任务描述本关任务:编写一个小程序,求n钱买n鸡一共有多少种买法。已知公鸡5元一只,母鸡3元一只,小鸡一元3只。现在有n元,想买n只鸡,求有多少种买法。每种鸡可以买若干只,也可以不买输入格式一个正整数n。输出格式n钱买n鸡有多少种买法。若无解,则输出0。测试样例输入样例:100预期输出:4解释:当n = 4时,有以下四种解法:公鸡 = 0只, 母鸡 = 25只,小鸡 = 75只公鸡 = 4只, 母鸡 = 18只,小鸡 = 78只公鸡 = 8只, 母鸡 = 11只,小鸡原创 2021-01-25 13:09:13 · 3080 阅读 · 0 评论 -
乘法表
任务描述本关任务:输出n * n乘法表。输入格式一个正整数n, n>=1。输出格式乘法表的前n行,两个等式之间用一个空格’ ‘隔开,每一行的最后一个等式后也有一个空格’ '。测试样例1输入样例:2输出样例:1* 1=1 1* 2=22* 1=2 2* 2=4测试样例2输入样例:4输出样例:1* 1=1 1* 2=2 1* 3=3 1* 4=42* 1=2 2* 2=4 2* 3=6 2* 4=83* 1=3 3* 2=6 3* 3原创 2021-01-25 13:03:31 · 1072 阅读 · 0 评论 -
条件控制循环--大小写字母变换
任务描述从键盘输入依次输入一串英文字母,大小写不限,将其中的大写字母转换成相应的小写字母,小写字母转换成相应的大小字母,当输入字符不是英文字母时,停止程序执行。输入:gfDesBT4输出:GFdESbt输入:Kitty8LiLy输出:kITTY相关知识本关任务采用重复执行输入语句的方式来输入字符串,每输入 一个字符即对其进行判断,一个字符的转换处理完成后,即输入下一个字符。当读入的字符是非字母时,则处理结束。是否是字母,对于判断的结果可以作为一个标志f,例如:如果是字母,则设置:f = 1原创 2021-01-25 12:24:20 · 994 阅读 · 0 评论 -
条件控制循环--整数分段
任务描述根据整数的长度来分段重新组合生成新数。输入多个偶数位数的整数m,将数平均分为两段:前半段为s,后半段为t,将前后半段交换,构成一个新的整数,并输出,不保留高位零。当输入数据为-1时结束。输入:3025输出:2530输入:456089输出:89456相关知识确定整数的位数计算机如何确定一个整数的位数?(1)要获得一个整数n的具体是几位数,可利用log10和floor函数:m = floor(log10(n)+1)(2) 利用循环,一位位地数数:从个位数开始,一位位地将数字去掉原创 2021-01-25 12:24:33 · 739 阅读 · 0 评论 -
青年歌手大奖赛_评委会打分
任务描述本关任务:青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。编程要求输入数据有多组,每组占一行,每行的第一个数是n( 2 < n < 100),表示评委的人数,然后是n个评委的打分。n=0表示输入的结束,不做处理。对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。测试说明平台会对你编写的代码进行测试:测试输入:3 99 98 974 100 99 98 970预期输出原创 2021-01-23 15:18:23 · 1375 阅读 · 0 评论 -
百灯判熄
任务描述本关任务:有100盏灯,编号为1~100,分别有100个开关进行控制,开始时灯全是打开的,然后进行如下的操作:首先将编号凡是1的倍数的开关进行反向操作,然后再将是2的倍数的开关进行反向操作,依次类推直到最后对100的倍数的开关进行反向操作。求最后熄灭状态的灯的编号及总数。相关知识为了完成本关任务,你需要掌握:1.如何遍历数组。测试说明平台会对你编写的代码进行测试:请按下面的格式输出,编号输出用%4d。预期输出:熄灭状态的灯的编号是:?? ?? …共有??盏灯是灭的代原创 2021-01-23 15:15:00 · 850 阅读 · 0 评论 -
打印杨辉三角
任务描述题目描述:还记得中学时候学过的杨辉三角吗?杨辉三角是一个无限对称的数字金字塔,从顶部的单个1开始,下面一行中的每个数字都是上面两个数字的和,你可以参考以下的图形:1 1 1 1 2 1 1 3 3 11 4 6 4 1 1 5 10 10 5 1 测试说明平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。输出打印出杨辉三角图形的10行。格式见题目描述部分。数据输出格式用“%4d”。代码如下#include<stdio.h>int main(原创 2021-01-23 15:11:42 · 498 阅读 · 0 评论 -
删除最大值
任务描述题目描述:输入10个互不相同的整数并保存在数组中,找到该最大元素并删除它,输出删除后的数组编程要求输入输入10个互不相同整数输出输出删除最大元素后的数组测试说明样例输入:1 2 3 4 5 6 7 8 9 0样例输出:1 2 3 4 5 6 7 8 0#include<stdio.h>int main(void){ int a[100],temp,max; for(int i=1;i<=10;i++) { sca原创 2021-01-23 15:08:20 · 5600 阅读 · 4 评论 -
鞍点
任务描述题目描述:找出具有m行n列二维数组Array的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10。编程要求输入输入数据有多行,第一行有两个数m和n,下面有m行,每行有n个数。输出按下列格式输出鞍点:Array[i][j]=x其中x代表鞍点,i和j为鞍点所在的数组行和列下标,我们规定数组下标从0开始。一个二维数组并不一定存在鞍点,此时请输出None我们保证不会出现两个鞍点的情况,比如:3 31 2 31 2 33 6 8测试原创 2021-01-23 15:04:20 · 2162 阅读 · 1 评论 -
计算数组中元素的最大值及其所在的行列下标值
任务描述按如下函数原型编程从键盘输入一个m行n列的二维数组,然后计算数组中元素的最大值及其所在的行列下标值。其中m和n的值由用户键盘输入。已知m和n的值都不超过10。相关知识为了完成本关任务,你需要掌握:1.二维数组定义;2.遍历二维数组;3.嵌套循环编程要求输入输入数组大小:"%d,%d"下面输入数组中元素。输出输出格式:数组大小输入提示信息:“Input m, n:”数组元素输入提示信息:"Input %d*%d array: "输出格式:“max=%d, row=%d, co原创 2021-01-23 14:59:27 · 8064 阅读 · 5 评论 -
二分查找
任务描述题目描述:将n个从小到大排序的整数(n<1000000)从1~n进行编号,并一个待查找的整数m,请使用二分法进行查找。相关知识为了完成本关任务,你需要掌握:1.一维数组 2.二分法(折半查找)编程要求输入输入包括3行,第一行为整数n(元素个数),第二行包括n个整数(数组元素),以空格分隔,第三行为整数m(要查找的元素)。输出如果能够在序列中找到整数m,则输出编号(如果存在多个编号,返回编号最小的),如果不存在,则输出None。测试说明样例输入:101 2 4 5 6原创 2021-01-23 14:55:20 · 5471 阅读 · 0 评论 -
排序问题
任务描述本关任务:将十个数进行从大到小的顺序进行排列。相关知识为了完成本关任务,你需要掌握:1.一维数组 2.排序算法编程要求根据提示,在右侧编辑器Begin-End处补充代码。输入输入十个整数输出以从大到小的顺序输出这个十个数测试说明样例输入:1 2 3 4 5 6 7 8 9 10样例输出:10 9 8 7 6 5 4 3 2 1代码如下#include<stdio.h>#define N 10int main(){ int i,j,k原创 2021-01-23 14:48:31 · 662 阅读 · 0 评论 -
简单加密
任务描述在网络传递数据过程中为安全考虑要为数据进行加密 ,假定数据是四位的整数,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。用户输入一个四位的整数,输出加密后的密文。相关知识为了完成本关任务,你需要掌握:1.如何定义数组,2.如何遍历数组。测试说明平台会对你编写的代码进行测试:测试输入:1234预期输出:9876测试输入:7656预期输出:1012代码如下#include <stdi原创 2021-01-23 14:42:41 · 640 阅读 · 0 评论 -
查找整数
任务描述给出一个包含n个整数的数列,问整数a在数列中的第一次出现的位置是多少(从1开始)?相关知识为了完成本关任务,你需要掌握:1.一维数组;2.线性查找编程要求输入第一行包含一个整数n。第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。第三行包含一个整数a,为待查找的数。输出如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。测试说明样例输入:61 9 4 8 3 99样例输出:2提示:数据规模与约定。1 &原创 2021-01-23 14:38:04 · 128 阅读 · 0 评论 -
递归实现Ackman函数
任务描述题目描述:编写一函数实现下列Ackman函数,其中m,n为正整数编程要求输入一个两个整数输出输出表达式的值,占一行。样例输入:1 1样例输出:3代码如下#include<stdio.h>int Acm(int m,int n){ int a; if(m==0&&n>0) { a=n+1; } else if(n==0&&m>0) { a=Acm(m-1原创 2021-01-22 13:32:00 · 4340 阅读 · 0 评论 -
递归实现输出一个整数的逆序
任务描述编写一个递归函数,将一个整数n逆序输出,比如,n = 12345,输出54321。测试说明样例输入:12345样例输出54321代码如下:#include<stdio.h>void solve(int n){ if(n<10) { printf("%d",n); } else { printf("%d",n%10); return solve(n/10); }}int main(void)原创 2021-01-22 12:35:15 · 14996 阅读 · 6 评论 -
递归求阶乘数列
任务描述题目描述:用递归求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。编程要求输入一个整数n(1<=n<=20)输出输出表达式的值,占一行。测试说明样例输入:5样例输出:153提示:因阶乘结果变化很快,所以输入数据不可太大。代码如下#include<stdio.h>long long solve(long long n){ /*********Begin*********/ int i; long long原创 2021-01-22 12:22:07 · 4736 阅读 · 1 评论 -
相反次序重新组合
任务描述本关请完成将一个整数按相反次序重新组合成另一个整数输出的小程序。相关知识基本算术运算符:+: 就是把两个数据相加,得到和;-: 就是把两个数据相减,得到差;*: 就是把两个数据相乘,得到积;/: 就是把两个数据相除,得到商;%: 就是把两个数据相除,得到余数。说明:同一优先级的运算符,运算次序由结合方向所决定。简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符编程要求具体任务如下:编原创 2021-01-22 12:02:56 · 4007 阅读 · 7 评论 -
结构体指针
结构体指针任务描述本关任务:已知学生的记录由学号和学习成绩构成,N名学生的数据已存入名为a结构体数组中。函数fun的功能是:找出成绩最低的学生记录,通过形参返回到主函数(规定只有一个最低分)。编程要求补充代码,实现小程序。测试说明预期输出:输出成绩最低的学生记录。代码如下#include <stdio.h>#include <string.h>#define N 10typedef struct ss{ char num[10]; int s; }原创 2021-01-21 18:46:51 · 411 阅读 · 0 评论 -
结构体存储数据
结构体存储数据任务描述本关任务:有三个候选人,每个选民只能投一票,写一程序,用结构体存储数据,求出得票结果。三个候选人为”Li“, “Zhang“,”Sun“。编程要求补充代码,用结构体存储数据,求出得票结果。测试说明平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:测试输入:10LiLiSunZhangZhangSunLiSunZhangLi预期输出:Li:4Zhang:2Sun:3测试输入数据说明:原创 2021-01-21 18:40:31 · 6603 阅读 · 0 评论 -
结构体排序
结构体排序任务描述本关任务:有n个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出学生的信息。编程要求补充代码,要求按照成绩的高低顺序输出学生的信息。测试说明平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:测试输入:510101 Zhang 7810103 Wang 9810106 Li 8610108 Ling 7310110 Sun 100预期输出:10110 Sun 10010103 Wang 98原创 2021-01-21 18:35:50 · 1759 阅读 · 0 评论 -
结构体变量的初始化和引用
结构体变量的初始化和引用任务描述本关任务:从键盘输入两个学生的学号,姓名和成绩(整数),分别存入结构体中,输出成绩较高的学生的学号,姓名和成绩。相关知识结构体类型用于描述由多个不同数据类型的数据构成的复合数据,是一种用户自定义数据类型。结构体的定义定义格式为struct <结构体类型名>{ <成员表>}; //分号结束定义例如,以下是一个描述学生信息的结构体类型定义:struct student{ long number; char原创 2021-01-21 18:28:37 · 8300 阅读 · 5 评论