diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-1 找出一批学生的最高分.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-1 找出一批学生的最高分.cpp deleted file mode 100644 index 2206191..0000000 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-1 找出一批学生的最高分.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/*7-1 ҳһѧ߷ - 10 - -λ ѧԺ -Ҫдҳ߷֡ - -ʽ: -һиһϵзǸԿոָʱʾֲҪ - -ʽ: -һ߷֡ - -: -һ롣磺 - -67 88 73 54 0 95 60 -1 -: -Ӧ磺 - -95*/ - -#include -int main() -{ - int num,maxnum; - scanf("%d",&num); - maxnum=num; - for(;num>=0;){ - scanf("%d",&num); - if(num>maxnum){ - maxnum=num; - } - } - printf("%d",maxnum); - return 0; -} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-10 统计素数并求和.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-10 统计素数并求和.cpp deleted file mode 100644 index d515e6e..0000000 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-10 统计素数并求和.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* -7-10 ??????? -?? 10 -?? ??? -?? ???? -??????????M?N??????????????? - -????: -?????????????M?N(1=M=N=500)? - -????: -????????M?N??????????????,????????? - -????: -10 31 -????: -7 143 -*/ - -#include -int main(){ - int m,n,i,j,cnt=0,sum=0,flag=1; - scanf("%d %d",&m,&n); - if(m==1) m=2; - for(i=m;i<=n;i++){ - flag=1; - for(j=2;j -int main(){ - int flag=1; - double eps,a=1,sum=0; - scanf("%lf",&eps); - for(int i=1;;){ - sum+=1.0/a*flag; - if(1.0/a<=eps) - break; - a+=3; - flag=-flag; - } - printf("sum = %.6lf",sum); - return 0; -} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-4 求整数的位数及各位数字之和.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-4 求整数的位数及各位数字之和.cpp deleted file mode 100644 index ab8dc7f..0000000 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-4 求整数的位数及各位数字之和.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* -7-4 λλ֮ - 10 - Cγ -λ 㽭ѧ -ڸNλλ֮͡ - -ʽ -һиһ10^9N - -ʽ -һNλλ֮ͣмһո - - -321 - -3 6 -*/ -#include -int main(){ - int N,cnt=0,sum=0; - scanf("%d",&N); - for(;N!=0;){ - sum+=N%10; - N=N/10; - cnt++; - } - printf("%d %d",cnt,sum); - return 0; -} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-5 约分最简分式.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-5 约分最简分式.cpp deleted file mode 100644 index 509525b..0000000 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-5 约分最简分式.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/* -7-5 ?????? -?? 10 -?? ?? -?? ???? -?????????/????????????,??????????,????????????????????????????????????6/12??????1/2?????????,??????????????,?11/8??11/8;?????????,?????1/1?????? - -????: -????????????,??????????/??,?:12/34??34??12???????????(???0,?????????????)? - -??: - -??C??,?scanf?????????/,?scanf???????? -??Python??,?a,b=map(int, input().split('/'))????????????? -????: -?????????????????,????????,?????/??????????? -5/6??6??5? - -????: -66/120 -????: -11/20 -*/ - -#include -int main(){ - int zi,mu,r,zi_save,mu_save; - scanf("%d/%d",&zi,&mu); - zi_save=zi; - mu_save=mu; - if(zi==mu) printf("1/1"); - else{ - r=zi%mu; - for(;r!=0;r=zi%mu){ - zi=mu; - mu=r; - } - printf("%d/%d",zi_save/mu,mu_save/mu); - } - return 0; -} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-6 求满足条件的斐波那契数.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-6 求满足条件的斐波那契数.cpp deleted file mode 100644 index 9d6f459..0000000 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-6 求满足条件的斐波那契数.cpp +++ /dev/null @@ -1 +0,0 @@ -/**/ diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-7 求e的近似值.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-7 求e的近似值.cpp deleted file mode 100644 index 84e588a..0000000 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-7 求e的近似值.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/* -7-7 ?e???? -?? 10 -?? C??? -?? ???? -???? e ????? 1+1/1!+1/2!+?+1/n!+? ?????????????????? n,?????? n+1 ??? - -????: -???????????? n(=1000)? - -????: -???????????,????????? - -????: -10 -????: -2.71828180 -*/ - -#include -int main(){ - int n; - scanf("%d",&n); - double sum=1.0,tag=1.0; - for(int i=1;i<=n;i++){ - tag=tag*1.0/i; - sum+=tag; - } - printf("%.8lf",sum); - return 0; -} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-8 输出三角形字符阵列.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-8 输出三角形字符阵列.cpp deleted file mode 100644 index 790dc44..0000000 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-8 输出三角形字符阵列.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/* -7-8 ????????? -?? 10 -?? ?? -?? ?????? -????????,??n??????A????????????? - -????: -?????????????n(1=n<7)? - -????: -??n??????A????????????????????,??????????????? - -????: -4 -????: -A B C D -E F G -H I -J -*/ - -#include -int main(){ - int n; - scanf("%d",&n); - char c='A'; - for(int i=n;i>0;i--){ - for(int j=i;j>0;j--){ - printf("%c ",c); - c++; - } - printf("\n"); - } - return 0; -} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-9 找完数.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-9 找完数.cpp deleted file mode 100644 index c388287..0000000 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/7-9 找完数.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/* -7-9 - 10 - ½ -λ 㽭ѧ -νǸǡõڳ֮͡磺6=1+2+3123Ϊ6ӡҪдҳmn֮ - -ʽ -һи2mn1 -int main() -{ - int n, m, i, j, k, sum = 0; - int N = 1; //жm-n֮Ƿ - int flag = 0; //жǷ - scanf("%d %d", &m, &n); - for (i = m;i <= n;i++) //mn֮ - { - flag = 0; - sum = 0; - for (j = 1;j <= i / 2;j++) //ѭᳬһ - { - if (i % j == 0) - sum += j; - } - if (sum == i) // - flag = 1; - - if (flag) // - { - N = 0; - printf("%d = 1 ", i); //͵һ - for (k = 2;k <= i / 2;k++) //һѾókȡ2ʼ - { - if (i % k == 0) - { - printf("+ %d ", k); - } - } - printf("\n"); - } - } - if (N) //m-n֮û - { - printf("None\n"); - } - return 0; -} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/找出一批学生的最高分.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/找出一批学生的最高分.cpp new file mode 100644 index 0000000..1fecac7 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/找出一批学生的最高分.cpp @@ -0,0 +1,38 @@ +/* 7-1 找出一批学生的最高分 +分数 10 +作者 颜晖 +单位 浙大城市学院 +本题要求编写程序,找出最高分。 + +输入格式: +输入在一行中给出一系列非负整数,其间以空格分隔。当读到负整数时,表示输入结束,该数字不要处理。 + +输出格式: +在一行中输出最高分。 + +输入样例: +在这里给出一组输入。例如: + +67 88 73 54 0 95 60 -1 +输出样例: +在这里给出相应的输出。例如: + +95 */ + +#include +int main() +{ + int num, maxnum; + scanf("%d", &num); + maxnum = num; + for (; num >= 0;) + { + scanf("%d", &num); + if (num > maxnum) + { + maxnum = num; + } + } + printf("%d", maxnum); + return 0; +} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/找完数.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/找完数.cpp new file mode 100644 index 0000000..a607c8b --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/找完数.cpp @@ -0,0 +1,58 @@ +/* 7-9 找完数 +分数 10 +作者 陈建海 +单位 浙江大学 +所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。 + +输入格式: +输入在一行中给出2个正整数m和n(1 +int main() +{ + int m, n, i, j, k, N = 1, flag = 0, sum = 0; + scanf("%d %d", &m, &n); + for (i = m; i <= n; i++) + { + flag = 0; + sum = 0; + for (j = 1; j <= i / 2; j++) + { + if (i % j == 0) + sum += j; + } + if (sum == i) + flag = 1; + if (flag) + { + N = 0; + printf("%d = 1", i); + for (k = 2; k <= i / 2; k++) + { + if (i % k == 0) + { + printf(" + %d", k); + } + } + printf("\n"); + } + } + if (N) + printf("None\n"); + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求e的近似值.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求e的近似值.cpp new file mode 100644 index 0000000..78da84e --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求e的近似值.cpp @@ -0,0 +1,37 @@ +/* 7-7 求e的近似值 +分数 10 +作者 C课程组 +单位 浙江大学 +自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。 + +输入格式: +输入第一行中给出非负整数 n(≤1000)。 + +输出格式: +在一行中输出部分和的值,保留小数点后八位。 + +输入样例: +10 +输出样例: +2.71828180 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB */ + +#include +int main() +{ + int n; + scanf("%d", &n); + double sum = 1.0, tag = 1.0; + for (int i = 1; i <= n; i++) + { + tag = tag * 1.0 / i; + sum += tag; + } + printf("%.8lf", sum); + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求整数的位数及各位数字之和.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求整数的位数及各位数字之和.cpp new file mode 100644 index 0000000..b2c1836 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求整数的位数及各位数字之和.cpp @@ -0,0 +1,39 @@ +/* 7-4 求整数的位数及各位数字之和 +分数 10 +作者 C课程组 +单位 浙江大学 +对于给定的正整数N,求它的位数及其各位数字之和。 + +输入格式: +输入在一行中给出一个不超过10 +9 + 的正整数N。 + +输出格式: +在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。 + +输入样例: +321 +输出样例: +3 6 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB */ + +#include +int main() +{ + int N, cnt = 0, sum = 0; + scanf("%d", &N); + for (; N != 0;) + { + sum += N % 10; + N = N / 10; + cnt++; + } + printf("%d %d", cnt, sum); + return 0; +} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求满足条件的斐波那契数.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求满足条件的斐波那契数.cpp new file mode 100644 index 0000000..233ea57 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求满足条件的斐波那契数.cpp @@ -0,0 +1,41 @@ +/* 7-6 求满足条件的斐波那契数 +分数 10 +作者 陈春晖 +单位 浙江大学 +斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。求大于输入数的最小斐波那契数。 + +输入格式: +在一行输人一个正整数n(n>=10)。 + +输出格式: +在一行输出大于n的最小斐波那契数。 + +输入样例: +在这里给出一组输入。例如: + +10 +输出样例: +在这里给出相应的输出。例如: + +13 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB */ + +#include +int main() +{ + int a = 1, b = 1, c, n; + scanf("%d", &n); + for (int i = 1; c <= n; i++) + { + c = a + b; + a = b; + b = c; + } + printf("%d", c); + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求简单交错序列前N项和.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求简单交错序列前N项和.cpp index ed79960..d75c8c9 100644 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求简单交错序列前N项和.cpp +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求简单交错序列前N项和.cpp @@ -1,33 +1,35 @@ /* -7-2 򵥽ǰN - 10 - Cγ -λ 㽭ѧ -Ҫд, 1 - 1/4 + 1/7 - 1/10 + ... ǰN֮͡ +7-2 求简单交错序列前N项和 +分数 10 +作者 C课程组 +单位 浙江大学 +本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。 -ʽ: -һиһN +输入格式: +输入在一行中给出一个正整数N。 -ʽ: -һаաsum = Sĸʽֺ͵ֵSȷСλĿ֤˫ȷΧ +输出格式: +在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。 -: +输入样例: 10 -: +输出样例: sum = 0.819 */ -#include -int main(){ +#include +int main() +{ int N; - scanf("%d",&N); - int flag=1; - int a=1; - double sum=0; - for(int i=1;i<=N;i++,a+=3){ - sum+=1.0/a*flag; - flag=-flag; + scanf("%d", &N); + int flag = 1; + int a = 1; + double sum = 0; + for (int i = 1; i <= N; i++, a += 3) + { + sum += 1.0 / a * flag; + flag = -flag; } - printf("sum = %.3lf",sum); + printf("sum = %.3lf", sum); return 0; } diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求给定精度的简单交错序列部分和.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求给定精度的简单交错序列部分和.cpp new file mode 100644 index 0000000..bbdc2f4 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求给定精度的简单交错序列部分和.cpp @@ -0,0 +1,46 @@ +/* 7-3 求给定精度的简单交错序列部分和 +分数 10 +作者 C课程组 +单位 浙江大学 +本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。 + +输入格式: +输入在一行中给出一个正实数eps。 + +输出格式: +在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。 + +输入样例1: +4E-2 +输出样例1: +sum = 0.854457 +输入样例2: +0.02 +输出样例2: +sum = 0.826310 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB */ + +#include +int main() +{ + double eps; + scanf("%lf", &eps); + double sum = 0; + double a = 1; + int t = 1; + for (int i = 1;;) + { + sum += 1.0 / a * t; + if (1.0 / a <= eps) + break; + a += 3; + t = -t; + } + printf("sum = %.6lf", sum); + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/约分最简分式.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/约分最简分式.cpp new file mode 100644 index 0000000..3ac5270 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/约分最简分式.cpp @@ -0,0 +1,49 @@ +/* 7-5 约分最简分式 +分数 10 +作者 翁恺 +单位 浙江大学 +分数可以表示为分子/分母的形式。编写一个程序,要求用户输入一个分数,然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时,不需要表达为整数又分数的形式,即11/8还是11/8;而当分子分母相等时,仍然表达为1/1的分数形式。 + +输入格式: +输入在一行中给出一个分数,分子和分母中间以斜杠/分隔,如:12/34表示34分之12。分子和分母都是正整数(不包含0,如果不清楚正整数的定义的话)。 + +提示: + +对于C语言,在scanf的格式字符串中加入/,让scanf来处理这个斜杠。 +对于Python语言,用a,b=map(int, input().split('/'))这样的代码来处理这个斜杠。 +输出格式: +在一行中输出这个分数对应的最简分式,格式与输入的相同,即采用分子/分母的形式表示分数。如 +5/6表示6分之5。 + +输入样例: +66/120 +输出样例: +11/20 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB */ + +#include +int main() +{ + int a, b, c, d, r; + scanf("%d/%d", &a, &b); + c = a; + d = b; + if (a == b) + printf("1/1"); + else + { + r = a % b; + for (; r != 0; r = a % b) + { + a = b; + b = r; + } + printf("%d/%d", c / b, d / b); + } + return 0; +} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/统计素数并求和.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/统计素数并求和.cpp new file mode 100644 index 0000000..8afb180 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/统计素数并求和.cpp @@ -0,0 +1,50 @@ +/* 7-10 ͳ + 10 + ͮ +λ 㽭ѧ +ҪͳƸMNĸ͡ + +ʽ: +һиMN1MN500 + +ʽ: +һ˳MNĸԼǵĺּͣԿոָ + +: +10 31 +: +7 143 +볤 +16 KB +ʱ +400 ms +ڴ +64 MB */ + +#include +int main() +{ + int m, n, i, j, cnt = 0, sum = 0, flag = 1; + scanf("%d %d", &m, &n); + if (m == 1) + m = 2; + for (i = m; i <= n; i++) + { + flag = 1; + for (j = 2; j < i - 1; j++) + { + if (i % j == 0) + { + flag = 0; + break; + } + } + if (flag) + { + cnt++; + sum += i; + } + } + printf("%d %d\n", cnt, sum); + return 0; +} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/输出三角形字符阵列.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/输出三角形字符阵列.cpp new file mode 100644 index 0000000..0c06d04 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/输出三角形字符阵列.cpp @@ -0,0 +1,43 @@ +/* 7-8 输出三角形字符阵列 +分数 10 +作者 颜晖 +单位 浙大城市学院 +本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。 + +输入格式: +输入在一行中给出一个正整数n(1≤n<7)。 + +输出格式: +输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。 + +输入样例: +4 +输出样例: +A B C D +E F G +H I +J +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB */ + +#include +int main() +{ + int n; + scanf("%d", &n); + char c = 'A'; + for (int i = n; i > 0; i--) + { + for (int j = i; j > 0; j--) + { + printf("%c ", c); + c++; + } + printf("\n"); + } + return 0; +} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/6-1 使用函数找出数组中的最大值.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/6-1 使用函数找出数组中的最大值.cpp deleted file mode 100644 index 0e440b5..0000000 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/6-1 使用函数找出数组中的最大值.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* -6-1 ????????????? -?? 10 -?? ?? -?? ?????? -?????????????????????? - -??????: -int FindArrayMax( int a[], int n ); -??a????????,n???a?????????????a?????? - -????????: -#include -#define MAXN 10 - -int FindArrayMax( int a[], int n ); - -int main() -{ - int i, n; - int a[MAXN]; - - scanf("%d", &n); - for( i=0; i -#define MAXN 10 - -int FindArrayMax( int a[], int n ); - -int main() -{ - int i, n; - int a[MAXN]; - - scanf("%d", &n); - for( i=0; imaxnum) maxnum=a[j]; - } - return maxnum; -} - - diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/7-1 选择法排序之第k趟.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/7-1 选择法排序之第k趟.cpp deleted file mode 100644 index cd120ec..0000000 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/7-1 选择法排序之第k趟.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* -7-1 ???????k? -?? 10 -?? ?? -?? ?????? -???????????,????n???????????,???k?(k?0??)??????? - -???????????: - -?0?:?????n??(a[0]? a[n-1])??????,??? a[0]??; - -?1?:???????n-1??(a[1] ? a[n-1])??????,??? a[1] ??; - - - -?k?:???????n-k??(a[k]?a[n-1])??????,??? a[k] ??; - - - -?n-2?:???????2??(a[n-2] ?a[n-1])??????,??? a[n-2]??? - -????: -????????????10????n??????n-1????k??????n???,???????? - -????: -????????????k?(k?0??)?????,??k??a[0]? a[n-1]??,??????????,?????????? - -????: -4 1 -5 1 7 2 -????: -1 2 7 5 -*/ - -#include -int main() -{ - int i,j,n,k; - scanf("%d %d",&n,&k); - int a[n]; - for(i=0;ia[j]) c=j; - } - int t=a[i]; - a[i]=a[c]; - a[c]=t; - if(i==k){ - printf("%d",a[0]); - for(j=1;j -#include -int main(){ - int N,i,num,sum=0; - double final,avg,sum2=0; - scanf("%d",&N); - int a[N]; - for(i=0;i -int main(){ - int n,i; - scanf("%d",&n); - int a[n]; - for(i=0;imax) max=a[i]; - } - int cnt=0; - for(i=0;i -int main(){ - int N,i; - scanf("%d",&N); - int a[N]; - for(i=0;ia[i]){ - min=a[i]; - min_i=i; - }; - } - t=a[0]; - a[0]=min; - a[min_i]=t; - for(i=0;i -int main(){ - int N,i; - scanf("%d",&N); - int a[N],b[10],c; - for(i=0;i<10;i++) - b[i]=0; - for(i=0;i -int main(){ - int n,i,num; - scanf("%d",&n); - int b[9]; - for(i=0;i -int main(){ - int n; - int b[10000]; - while(scanf("%d",&n)==1){ - int i,cnt=0; - if(n==0) printf("0"); - for(i=0;n!=0;n/=2){ - b[i]=n%2; - cnt++; - i++; - } - for(i=cnt-1;i>=0;i--){ - printf("%d",b[i]); - } - printf("\n"); - } - return 0; -} - - diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/7-8 查找满足条件的最后一个整数.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/7-8 查找满足条件的最后一个整数.cpp deleted file mode 100644 index d9892cc..0000000 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/7-8 查找满足条件的最后一个整数.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* -7-8 ????????????? -?? 10 -?? ?? -?? ?????? -????????,????n???????a?,?????a??????x?????a?????x????,????????????????(???0??);??????,??Not Found? - -????: -????1?????????n(1=n=100)?????x,?2???n???,?????????????????????????? - -????: -????,???x??????????????;??????,??????Not Found? - -????1: -5 9 -2 9 8 1 9 -????1: -4 -????2: -10 101 -2 8 10 1 9 8 -101 0 98762 1 -????2: -Not Found -*/ - -#include -int main(){ - int n,x,i,cnt=0,max; - scanf("%d %d",&n,&x); - int a[n]; - for(i=0;i -int main(){ - int n; - scanf("%d",&n); - int a[n]; - for(int i=0;ia[j+1]){ - int t=a[j]; - a[j]=a[j+1]; - a[j+1]=t; - } - } - printf("%d",a[0]); - for(int k=1;k +int main() +{ + int N, i; + scanf("%d", &N); + int a[N]; + for (i = 0; i < N; i++) + { + scanf("%d", &a[i]); + } + int max = a[0], max_i = 0; + for (i = 0; i < N; i++) + { + if (max < a[i]) + { + max = a[i]; + max_i = i; + }; + } + int t = a[N - 1]; + a[N - 1] = max; + a[max_i] = t; + + int min = a[0], min_i = 0; + for (i = 0; i < N; i++) + { + if (min > a[i]) + { + min = a[i]; + min_i = i; + }; + } + t = a[0]; + a[0] = min; + a[min_i] = t; + for (i = 0; i < N; i++) + { + printf("%d ", a[i]); + } + return 0; +} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/使用函数找出数组中的最大值.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/使用函数找出数组中的最大值.cpp new file mode 100644 index 0000000..3871729 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/使用函数找出数组中的最大值.cpp @@ -0,0 +1,56 @@ +/* 6-1 使用函数找出数组中的最大值 +分数 10 +作者 张泳 +单位 浙大城市学院 +本题要求实现一个找出整型数组中最大值的函数。 + +函数接口定义: +int FindArrayMax( int a[], int n ); +其中a是用户传入的数组,n是数组a中元素的个数。函数返回数组a中的最大值。 + +裁判测试程序样例: +#include +#define MAXN 10 + +int FindArrayMax( int a[], int n ); + +int main() +{ + int i, n; + int a[MAXN]; + + scanf("%d", &n); + for( i=0; i max) + max = a[j]; + } + return max; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/冒泡法排序之过程.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/冒泡法排序之过程.cpp new file mode 100644 index 0000000..87933d6 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/冒泡法排序之过程.cpp @@ -0,0 +1,75 @@ +/* +7-9 冒泡法排序之过程 +分数 10 +作者 颜晖 +单位 浙大城市学院 +本题要求使用冒泡法排序,将给定的n个整数从小到大排序后输出,并输出排序过程中每一步的中间结果。 + +冒泡排序的算法步骤描述如下: + +第1步:在未排序的n个数(a[0]〜 a[n−1])中,从a[0]起,依次比较相邻的两个数,若邻接元素不符合次序要求,则对它们进行交换。本次操作后,数组中的最大元素“冒泡”到a[n−1]; + +第2步:在剩下未排序的n−1个数(a[0] 〜 a[n−2])中,从a[0]起,依次比较相邻的两个数,若邻接元素不符合次序要求,则对它们进行交换。本次操作后,a[0] 〜 a[n−2]中的最大元素“冒泡”到a[n−2]; + +…… + +第i步:在剩下未排序的n−k个数(a[0]〜a[n−i])中,从a[0]起,依次比较相邻的两个数,若邻接元素不符合次序要求,则对它们进行交换。本次操作后,a[0] 〜 a[n−i]中的最大元素“冒泡”到a[n−i]; + +…… + +第n−1步:在剩下未排序的2个数(a[0] 〜a[1])中,比较这两个数,若不符合次序要求,则对它们进行交换。本次操作后,a[0] 〜 a[1]中的最大元素“冒泡”到a[1]。 + +输入格式: +输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。 + +输出格式: +在每一行中输出排序过程中对应步骤的中间结果,即每一步后a[0]〜 a[n−1]的值,相邻数字间有一个空格,行末不得有多余空格。 + +输入样例: +5 +8 7 6 0 1 +输出样例: +7 6 0 1 8 +6 0 1 7 8 +0 1 6 7 8 +0 1 6 7 8 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB +*/ + +#include +int main() +{ + int n, i, j, k; + scanf("%d", &n); + int a[n]; + for (i = 0; i < n; i++) + { + scanf("%d", &a[i]); + } + if (n == 1) + printf("%d", a[0]); + for (i = 0; i < n - 1; i++) + { + for (j = 0; j < n - i - 1; j++) + { + if (a[j] > a[j + 1]) + { + int t = a[j]; + a[j] = a[j + 1]; + a[j + 1] = t; + } + } + printf("%d", a[0]); + for (k = 1; k < n; k++) + { + printf(" %d", a[k]); + } + printf("\n"); + } + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/十进制转二进制.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/十进制转二进制.cpp new file mode 100644 index 0000000..6f33ece --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/十进制转二进制.cpp @@ -0,0 +1,53 @@ +/* +7-7 十进制转二进制 +分数 10 +作者 于延 +单位 哈尔滨师范大学 +任务描述 +编程输出十进制非负整数转换成二进制数的序列。(不能用递归函数,当然此时你还没有学习到函数,请用循环解决) +输入格式: +若干个非负整数,每个整数代表一组数据,且都不超过2的30次方1073741824,数据之间以空格或回车分隔。 +输出格式: +依次输出每组数据的二进制序列,每个输出结果单独占一行。 +输入样例: +25 36 0 1 +1024 1073741824 +输出样例: +11001 +100100 +0 +1 +10000000000 +1000000000000000000000000000000 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB +*/ + +#include +int main() +{ + int n; + int b[10000]; + while (scanf("%d", &n) == 1) + { + int i, cnt = 0; + if (n == 0) + printf("0"); + for (i = 0; n != 0; n /= 2) + { + b[i] = n % 2; + cnt++; + i++; + } + for (i = cnt - 1; i >= 0; i--) + { + printf("%d", b[i]); + } + printf("\n"); + } + return 0; +} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/查找满足条件的最后一个整数.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/查找满足条件的最后一个整数.cpp new file mode 100644 index 0000000..52d2e15 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/查找满足条件的最后一个整数.cpp @@ -0,0 +1,56 @@ +/* +7-8 查找满足条件的最后一个整数 +分数 10 +作者 颜晖 +单位 浙大城市学院 +本题要求编写程序,将输入的n个整数存入数组a中,然后在数组a中查找给定的x。如果数组a中的元素与x的值相同,输出满足条件的最后一个元素的下标(下标从0开始);如果没有找到,输出“Not Found”。 + +输入格式: +输入在第1行中给出一个正整数n(1≤n≤100)和一个整数x,第2行输入n个整数,其间以空格分隔。题目保证数据不超过长整型整数的范围。 + +输出格式: +如果找到,输出与x的值相同的最后一个元素的下标;如果没有找到,在一行中输出“Not Found”。 + +输入样例1: +5 9 +2 9 8 1 9 +输出样例1: +4 +输入样例2: +10 101 +2 8 10 1 9 8 -101 0 98762 1 +输出样例2: +Not Found +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB +*/ + +#include +int main() +{ + int n, num, cnt = 0, maxi; + scanf("%d %d", &n, &num); + int a[n]; + for (int i = 0; i < n; i++) + { + scanf("%d", &a[i]); + } + for (int i = 0; i < n; i++) + { + if (a[i] == num) + { + cnt++; + maxi = i; + } + } + if (cnt == 0) + printf("Not Found"); + else if (cnt != 0) + printf("%d", maxi); + + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/求一批整数中出现最多的个位数字.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/求一批整数中出现最多的个位数字.cpp new file mode 100644 index 0000000..5267d56 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/求一批整数中出现最多的个位数字.cpp @@ -0,0 +1,59 @@ +/* +7-5 求一批整数中出现最多的个位数字 +分数 10 +作者 徐镜春 +单位 浙江大学 +给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。 + +输入格式: +输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。 + +输出格式: +在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。 + +输入样例: +3 +1234 2345 3456 +输出样例: +3: 3 4 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB +*/ + +#include +int main() +{ + int n; + scanf("%d", &n); + int a[n], b[10], c; + for (int i = 0; i < 10; i++) + b[i] = 0; + for (int i = 0; i < n; i++) + { + scanf("%d", &a[i]); + if (a[i] == 0) + b[0]++; + for (; a[i] != 0; a[i] /= 10) + { + c = a[i] % 10; + b[c]++; + } + } + int max = b[0]; + for (int i = 1; i < 10; i++) + { + if (max < b[i]) + max = b[i]; + } + printf("%d:", max); + for (int i = 0; i < 10; i++) + { + if (max == b[i]) + printf(" %d", i); + } + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/求集合数据的均方差.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/求集合数据的均方差.cpp new file mode 100644 index 0000000..00fe196 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/求集合数据的均方差.cpp @@ -0,0 +1,76 @@ +/* +7-2 求集合数据的均方差 +分数 10 +作者 何钦铭 +单位 浙江大学 +设计函数求 N 个给定整数的均方差。若将 N 个数 A[ ] 的平均值记为 Avg,则均方差计算公式为: +[(A +1 +​ + −Avg) +2 + +(A +2 +​ + −Avg) +2 + +⋯+(A +N +​ + −Avg) +2 + ]/N +​ + 。 + +输入格式: +输入首先在第一行给出一个正整数 N(≤10 +4 + ),随后一行给出 N 个正整数。所有数字都不超过 1000,同行数字以空格分隔。 + +输出格式: +输出这N个数的均方差,要求固定精度输出小数点后5位。 + +输入样例 1: +10 +6 3 7 1 4 8 2 9 11 5 +输出样例 1: +3.03974 +输入样例 2: +1 +2 +输出样例 2: +0.00000 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB +*/ + +#include +#include +int main() +{ + int n, i; + double avg, fangcha, sum1 = 0, sum2 = 0; + scanf("%d", &n); + int a[n]; + for (i = 0; i < n; i++) + { + scanf("%d", &a[i]); + } + for (i = 0; i < n; i++) + { + sum1 += a[i]; + } + avg = sum1 * 1.0 / n; + for (i = 0; i < n; i++) + { + sum2 += pow(a[i] - avg, 2); + } + fangcha = pow(1.0 * sum2 / n, 0.5); + printf("%.5lf", fangcha); + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/计算最大值出现的次数.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/计算最大值出现的次数.cpp new file mode 100644 index 0000000..05b19d6 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/计算最大值出现的次数.cpp @@ -0,0 +1,54 @@ +/* +7-3 计算最大值出现的次数 +分数 10 +作者 李志聪 +单位 哈尔滨师范大学 +计算一维数组中最大值出现的次数。 + +输入格式: +输入在一行n( n<=1000,代表数组的大小),在下一行中输入 n个整数,为一维数组的元素。 + +输出格式: +输出最大值和出现的次数。 + +输入样例: +在这里给出一组输入。例如: + +4 +4 2 2 4 +输出样例: +在这里给出相应的输出。例如: + +4 2 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB +*/ + +#include +int main() +{ + int n, i, max, cnt = 0; + scanf("%d", &n); + int a[n]; + for (i = 0; i < n; i++) + { + scanf("%d", &a[i]); + } + max = a[0]; + for (i = 1; i < n; i++) + { + if (a[i] > max) + max = a[i]; + } + for (i = 0; i < n; i++) + { + if (a[i] == max) + cnt++; + } + printf("%d %d", max, cnt); + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/调查电视节目受欢迎程度.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/调查电视节目受欢迎程度.cpp new file mode 100644 index 0000000..b3518b9 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/调查电视节目受欢迎程度.cpp @@ -0,0 +1,55 @@ +/* +7-6 调查电视节目受欢迎程度 +分数 10 +作者 颜晖 +单位 浙大城市学院 +某电视台要调查观众对该台8个栏目(设相应栏目编号为1~8)的受欢迎情况,共调查了n位观众(1≤n≤1000),现要求编写程序,输入每一位观众的投票情况(每位观众只能选择一个最喜欢的栏目投票),统计输出各栏目的得票情况。 + +输入格式: +输入在第1行中给出一个正整数n(1≤n≤1000),第2行输入n个整数,其间以空格分隔。 + +输出格式: +按顺序输出所有8个栏目的编号和得票数,每个数占4位,每行输出一个栏目的编号和得票数。 + +输入样例: +10 +3 4 7 6 3 9 2 3 1 8 +输出样例: + 1 1 + 2 1 + 3 3 + 4 1 + 5 0 + 6 1 + 7 1 + 8 1 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB +*/ + +#include +#include +int main() +{ + int n; + scanf("%d", &n); + int a[n], b[9], c; + for (int i = 0; i < 9; i++) + b[i] = 0; + for (int i = 0; i < n; i++) + { + int num; + scanf("%d", &num); + if (num >= 1 && num <= 8) + b[num]++; + } + for (int i = 1; i < 9; i++) + { + printf("%4d%4d\n", i, b[i]); + } + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/选择法排序之第k趟.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/选择法排序之第k趟.cpp new file mode 100644 index 0000000..f76506f --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/选择法排序之第k趟.cpp @@ -0,0 +1,71 @@ +/* +7-1 选择法排序之第k趟 +分数 10 +作者 颜晖 +单位 浙大城市学院 +本题要求使用选择法排序,将给定的n个整数从小到大进行排序,输出第k趟(k从0开始)排序后的结果。 + +选择排序的算法步骤如下: + +第0步:在未排序的n个数(a[0]〜 a[n−1])中找到最小数,将它与 a[0]交换; + +第1步:在剩下未排序的n−1个数(a[1] 〜 a[n−1])中找到最小数,将它与 a[1] 交换; + +…… + +第k步:在剩下未排序的n−k个数(a[k]〜a[n−1])中找到最小数,将它与 a[k] 交换; + +…… + +第n−2步:在剩下未排序的2个数(a[n−2] 〜a[n−1])中找到最小数,将它与 a[n−2]交换。 + +输入格式: +输入第一行给出一个不超过10的正整数n和一个不超过n-1的正整数k。第二行给出n个整数,其间以空格分隔。 + +输出格式: +在一行中输出排序过程中第k步(k从0开始)的中间结果,即第k步后a[0]〜 a[n−1]的值,相邻数字间有一个空格,行末不得有多余空格。 + +输入样例: +4 1 +5 1 7 2 +输出样例: +1 2 7 5 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB +*/ + +#include +int main() +{ + int i, j, n, k; + scanf("%d %d", &n, &k); + int a[n]; + for (i = 0; i < n; i++) + { + scanf("%d", &a[i]); + } + if (n == 1) + printf("%d", a[0]); + for (i = 0; i < n - 1; i++) + { + int c = i; + for (j = i + 1; j < n; j++) + { + if (a[c] > a[j]) + c = j; + } + int t = a[i]; + a[i] = a[c]; + a[c] = t; + if (i == k) + { + printf("%d", a[0]); + for (j = 1; j < n; j++) + printf(" %d", a[j]); + } + } +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/7-1 求矩阵的局部极大值.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/7-1 求矩阵的局部极大值.cpp deleted file mode 100644 index 2fedc68..0000000 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/7-1 求矩阵的局部极大值.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/* -7-1 ????????? -?? 10 -?? ??? -?? ???? -??M?N??????A,??A??????A[i][j]?????????4???,??????A[i][j]?????????????????????????????????? - -????: -???????????A???M???N(3=M,N=20);??M?,????A????N??????????????? - -????: -??????? ?? ??????????????,????????1?????????????;??????1??????,???????????????????,???None ??? ???? - -????1: -4 5 -1 1 1 1 1 -1 3 9 3 1 -1 5 3 5 1 -1 1 1 1 1 -????1: -9 2 3 -5 3 2 -5 3 4 -????2: -3 5 -1 1 1 1 1 -9 3 9 9 1 -1 5 3 5 1 -????2: -None 3 5 -*/ - -#include -int main(){ - int m,n; - scanf("%d %d",&m,&n); - int a[100][100]; - for(i=1;i<=m;i++) - { - for(j=1;j<=n;j++) - { - scanf("%d",&A[i][j]); - } - } - for(i=2;iA[i+1][j]&&A[i][j]>A[i][j+1]&&A[i][j]>A[i-1][j]&&A[i][j]>A[i][j-1]) - { - cnt++; - printf("%d %d %d\n",A[i][j],i,j); - } - } - } - if(cnt==0) - printf("None %d %d",m,n); - return 0; -} diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/7-2 求矩阵各行元素之和.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/7-2 求矩阵各行元素之和.cpp deleted file mode 100644 index 4ea8263..0000000 --- a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/7-2 求矩阵各行元素之和.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* -7-2 ????????? -?? 10 -?? C??? -?? ???? -????????,??????mn????????? - -????: -????????????m?n(1=m,n=6)???m?,????n???,?? - -?????? - -????: -?????????????? - -????: -3 2 -6 3 -1 -8 -3 12 -????: -9 --7 -15 -*/ - -#include -int main(){ - int m,n,i,j,sum=0; - scanf("%d %d",&m,&n); - int A[100][100]; - for(i=0;i -int main() -{ - int n,i,j; - scanf("%d",&n); - int a[100][100],cnt=0; - for(i=0;i -int main() -{ - int n,i,j,sum=0; - scanf("%d",&n); - int A[100][100]; - for(i=0;i +int a[300]; +int main() +{ + char s[85]; + gets(s); + for (int i = 0; s[i] != '\0'; i++) + { + int b = (int)s[i]; + a[b]++; + } + for (int i = 0; i < 300; i++) + { + if (a[i] != 0) + { + printf("%c", i); + } + } + + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/判断回文字符串.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/判断回文字符串.cpp new file mode 100644 index 0000000..e9f0ca5 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/判断回文字符串.cpp @@ -0,0 +1,63 @@ +/* 7-7 判断回文字符串 +分数 10 +作者 陈春晖 +单位 浙江大学 +回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。 +输入一个字符串,判断该字符串是否为回文,只考虑数字和字母字符,字母的大小写没有区别。 + +输入格式: +输入一个字符串。 + +输出格式: +是回文,一行输出yes,否则输出no。 + +输入样例: +在这里给出一组输入。例如: + +A man,a plan; cnalPanama +输出样例: +在这里给出相应的输出。例如: + +yes +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB */ + +#include + +int main() +{ + char s[85], c[85]; + gets(s); + int cnt = 0, k = 0, flag = 1; + for (int i = 0; s[i] != '\0'; i++) + { + if (s[i] >= '0' && s[i] <= '9' || + s[i] >= 'A' && s[i] <= 'Z' || + s[i] >= 'a' && s[i] <= 'z') + { + c[k] = s[i]; + if (s[i] >= 'A' && s[i] <= 'Z') + { + c[k] += 32; + } + k++; + } + } + for (int i = 0; i < k / 2; i++) + { + if (c[i] != c[k - i - 1]) + { + flag = 0; + } + } + if (flag) + printf("yes\n"); + else + printf("no\n"); + + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/十六进制字符串转换成十进制非负整数.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/十六进制字符串转换成十进制非负整数.cpp new file mode 100644 index 0000000..3e24321 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/十六进制字符串转换成十进制非负整数.cpp @@ -0,0 +1,67 @@ +/* 7-9 十六进制字符串转换成十进制非负整数 +分数 10 +作者 颜晖 +单位 浙大城市学院 +输入一个以#结束的字符串,滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,输出该字符串并将其转换为十进制数后输出。 + +输入格式: +输入在一行中给出一个不超过80个字符长度的、以#结束的非空字符串。 + +输出格式: +第1行中输出已滤去所有非十六进制字符的字符串。 +在第2行中输出转换后的十进制数。题目保证输出结果在长整型范围内。 + +输入样例: +-zy1+Ak0-bq?# +输出样例: +1A0b +6667 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB */ + +#include +#include +int main() +{ + char s[85], c; + int i = 0, sum = 0; + while (1) + { + c = getchar(); + if (c == '#') + break; + if (c >= '0' && c <= '9' || c >= 'a' && c <= 'f' || c >= 'A' && c <= 'F') + { + s[i] = c; + i++; + } + } + for (int j = 0; j < i; j++) + { + if (s[j] >= '0' && s[j] <= '9') + { + int a = (int)s[j]; + int b = a - 48; + sum += b * pow(16, i - j - 1); + } + if (s[j] >= 'a' && s[j] <= 'f') + { + int a = (int)s[j]; + int b = a - 87; + sum += b * pow(16, i - j - 1); + } + if (s[j] >= 'A' && s[j] <= 'F') + { + int a = (int)s[j]; + int b = a - 55; + sum += b * pow(16, i - j - 1); + } + } + puts(s); + printf("%d\n", sum); + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/字符串替换.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/字符串替换.cpp new file mode 100644 index 0000000..ffa29f0 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/字符串替换.cpp @@ -0,0 +1,47 @@ +/* 7-8 字符串替换 +分数 10 +作者 C课程组 +单位 浙江大学 +本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换: + +原字母 对应字母 +A Z +B Y +C X +D W +… … +X C +Y B +Z A +输入格式: +输入在一行中给出一个不超过80个字符、并以回车结束的字符串。 + +输出格式: +输出在一行中给出替换完成后的字符串。 + +输入样例: +Only the 11 CAPItaL LeTtERS are replaced. +输出样例: +Lnly the 11 XZKRtaO OeGtVIH are replaced. +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB */ + +#include +int main() +{ + char str[81]; + gets(str); + for (int i = 0; str[i] != '\0'; i++) + { + if (str[i] >= 'A' & str[i] <= 'Z') + { + str[i] = 'A' + 'Z' - str[i]; + } + } + puts(str); + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/打印杨辉三角.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/打印杨辉三角.cpp new file mode 100644 index 0000000..6a5c6e4 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/打印杨辉三角.cpp @@ -0,0 +1,64 @@ +/* +7-3 打印杨辉三角 +分数 10 +作者 徐镜春 +单位 浙江大学 +本题要求按照规定格式打印前N行杨辉三角。 + +输入格式: +输入在一行中给出N(1≤N≤10)。 + +输出格式: +以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。 + +输入样例: +6 +输出样例: + 1 + 1 1 + 1 2 1 + 1 3 3 1 + 1 4 6 4 1 + 1 5 10 10 5 1 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB +*/ + +#include +int main() +{ + int n, i, j; + scanf("%d", &n); + int a[100][100], cnt = 0; + for (i = 0; i < n; i++) + { + for (j = 0; j <= i; j++) + { + if (j == 0 || j == i) + { + a[i][j] = 1; + } + else + { + a[i][j] = a[i - 1][j] + a[i - 1][j - 1]; + } + } + } + for (i = 0; i < n; i++) + { + for (j = 0; j < n - 1 - i; j++) + { + printf(" "); + } + for (j = 0; j <= i; j++) + { + printf("%4d", a[i][j]); + } + printf("\n"); + } + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/求矩阵各行元素之和.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/求矩阵各行元素之和.cpp new file mode 100644 index 0000000..c1d21c9 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/求矩阵各行元素之和.cpp @@ -0,0 +1,50 @@ +/* +7-2 求矩阵各行元素之和 +分数 10 +作者 C课程组 +单位 浙江大学 +本题要求编写程序,求一个给定的m×n矩阵各行元素之和。 + +输入格式: +输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间 + +以空格分隔。 + +输出格式: +每行输出对应矩阵行元素之和。 + +输入样例: +3 2 +6 3 +1 -8 +3 12 +输出样例: +9 +-7 +15 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB +*/ + +#include +int main() +{ + int m, n, i, j, sum = 0; + scanf("%d %d", &m, &n); + int A[100][100], B[100][100]; + for (i = 0; i < m; i++) + { + for (j = 0; j < n; j++) + { + scanf("%d", &A[i][j]); + sum += A[i][j]; + } + printf("%d\n", sum); + sum = 0; + } + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/求矩阵的局部极大值.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/求矩阵的局部极大值.cpp new file mode 100644 index 0000000..c8d2ac1 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/求矩阵的局部极大值.cpp @@ -0,0 +1,66 @@ +/* +7-1 求矩阵的局部极大值 +分数 10 +作者 徐镜春 +单位 浙江大学 +给定M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的局部极大值。本题要求给定矩阵的全部局部极大值及其所在的位置。 + +输入格式: +输入在第一行中给出矩阵A的行数M和列数N(3≤M,N≤20);最后M行,每行给出A在该行的N个元素的值。数字间以空格分隔。 + +输出格式: +每行按照“元素值 行号 列号”的格式输出一个局部极大值,其中行、列编号从1开始。要求按照行号递增输出;若同行有超过1个局部极大值,则该行按列号递增输出。若没有局部极大值,则输出“None 总行数 总列数”。 + +输入样例1: +4 5 +1 1 1 1 1 +1 3 9 3 1 +1 5 3 5 1 +1 1 1 1 1 +输出样例1: +9 2 3 +5 3 2 +5 3 4 +输入样例2: +3 5 +1 1 1 1 1 +9 3 9 9 1 +1 5 3 5 1 +输出样例2: +None 3 5 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB +*/ + +#include +int main() +{ + int m, n, i, j, cnt = 0; + scanf("%d %d", &m, &n); + int A[100][100]; + for (i = 1; i <= m; i++) + { + for (j = 1; j <= n; j++) + { + scanf("%d", &A[i][j]); + } + } + for (i = 2; i < m; i++) + { + for (j = 2; j < n; j++) + { + if (A[i][j] > A[i + 1][j] && A[i][j] > A[i][j + 1] && A[i][j] > A[i - 1][j] && A[i][j] > A[i][j - 1]) + { + cnt++; + printf("%d %d %d\n", A[i][j], i, j); + } + } + } + if (cnt == 0) + printf("None %d %d", m, n); + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/求矩阵的最大值(设惟一).cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/求矩阵的最大值(设惟一).cpp new file mode 100644 index 0000000..f8aeebe --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/求矩阵的最大值(设惟一).cpp @@ -0,0 +1,51 @@ +/* 7-5 求矩阵的最大值(设惟一) +分数 10 +作者 颜晖 +单位 浙大城市学院 +本题要求编写程序,求一个给定的m×n矩阵的最大值以及位置。题目保证最大值惟一。 + +输入格式: +输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间以空格分隔。 + +输出格式: +输出在第一行中输出最大值,在第二行中按照“行下标 列下标”(下标从0开始)的格式输出最大值的位置。 + +输入样例: +3 2 +6 3 +23 -9 +6 -1 +输出样例: +23 +1 0 +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB */ + +#include +int main() +{ + int m, n, i, j; + scanf("%d %d", &m, &n); + int A[100][100]; + int maxnum = -100, max_i, max_j; + for (i = 0; i < m; i++) + { + for (j = 0; j < n; j++) + { + scanf("%d", &A[i][j]); + if (A[i][j] > maxnum) + { + maxnum = A[i][j]; + max_i = i; + max_j = j; + } + } + } + printf("%d\n", maxnum); + printf("%d %d", max_i, max_j); + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/矩阵运算.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/矩阵运算.cpp new file mode 100644 index 0000000..a2a4117 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/矩阵运算.cpp @@ -0,0 +1,55 @@ +/* +7-4 矩阵运算 +分数 10 +作者 C课程组 +单位 浙江大学 +给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。 + +输入格式: +输入第一行给出正整数n(1 +int main() +{ + int n, i, j, sum = 0; + scanf("%d", &n); + int A[100][100]; + for (i = 0; i < n; i++) + { + for (j = 0; j < n; j++) + { + scanf("%d", &A[i][j]); + } + } + for (i = 0; i < n; i++) + { + for (j = 0; j < n; j++) + { + if (!((i == i & j == n - i - 1) || i == n - 1 || j == n - 1)) + { + sum += A[i][j]; + } + } + } + printf("%d", sum); + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/统计字符串中数字字符的个数.cpp b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/统计字符串中数字字符的个数.cpp new file mode 100644 index 0000000..17601a1 --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/统计字符串中数字字符的个数.cpp @@ -0,0 +1,39 @@ +/* 7-6 统计字符串中数字字符的个数 +分数 10 +作者 颜晖 +单位 浙大城市学院 +输入一个字符串,统计其中数字字符('0'……'9')的个数。 + +输入格式: +输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。 + +输出格式: +输出所统计的数字字符的个数。 + +输入样例: +It's 512? + +输出样例: +3 + +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB */ + +#include +int main() +{ + int cnt = 0; + char str[81]; + gets(str); + for (int i = 0; str[i] != 0; i++) + { + if (str[i] >= '0' && str[i] <= '9') + cnt++; + } + printf("%d", cnt); + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/C语言程序设计入门过关题集-顺序结构/输出三角形.cpp b/c/sourcecode/朱森森带领的奇妙冒险/C语言程序设计入门过关题集-顺序结构/输出三角形.cpp new file mode 100644 index 0000000..732e08e --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/C语言程序设计入门过关题集-顺序结构/输出三角形.cpp @@ -0,0 +1,35 @@ +/* 7-4 输出三角形 +分数 20 +作者 张高燕 +单位 浙大城市学院 +本题要求编写程序,输出指定的由“*”组成的三角图案。 + +输入格式: +本题无输入 + +输出格式: +按照下列格式输出由“*”组成的三角图案。 + +**** +*** +** +* +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB */ + +#include +#include + +int main(void) +{ + printf("****\n"); + printf("***\n"); + printf("**\n"); + printf("*\n"); + + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/C语言程序设计入门过关题集-顺序结构/输出菱形图案.cpp b/c/sourcecode/朱森森带领的奇妙冒险/C语言程序设计入门过关题集-顺序结构/输出菱形图案.cpp new file mode 100644 index 0000000..410df5f --- /dev/null +++ b/c/sourcecode/朱森森带领的奇妙冒险/C语言程序设计入门过关题集-顺序结构/输出菱形图案.cpp @@ -0,0 +1,33 @@ +/* 7-5 输出菱形图案 +分数 20 +作者 张高燕 +单位 浙大城市学院 +本题要求编写程序,输出指定的由“A”组成的菱形图案。 + +输入格式: +本题无输入 + +输出格式: +按照下列格式输出由“A”组成的菱形图案。 + + A +A A + A +代码长度限制 +16 KB +时间限制 +400 ms +内存限制 +64 MB */ + +#include +#include + +int main(void) +{ + printf(" A\n"); + printf("A A\n"); + printf(" A\n"); + + return 0; +} \ No newline at end of file diff --git a/c/sourcecode/朱森森带领的奇妙冒险/readme.md b/c/sourcecode/朱森森带领的奇妙冒险/readme.md index 544d984..3ddc0b6 100644 --- a/c/sourcecode/朱森森带领的奇妙冒险/readme.md +++ b/c/sourcecode/朱森森带领的奇妙冒险/readme.md @@ -1 +1 @@ -我永远喜欢朱森森030 +# 我永远喜欢朱森森030