mirror of
https://github.com/m1ngsama/code4sk.git
synced 2026-03-25 19:43:53 +00:00
code upload (unchanged)
This commit is contained in:
parent
f66dfc70b0
commit
c1d0dee3a4
56 changed files with 1663 additions and 1071 deletions
|
|
@ -1,36 +0,0 @@
|
||||||
/*7-1 找出一批学生的最高分
|
|
||||||
分数 10
|
|
||||||
作者 颜晖
|
|
||||||
单位 浙大城市学院
|
|
||||||
本题要求编写程序,找出最高分。
|
|
||||||
|
|
||||||
输入格式:
|
|
||||||
输入在一行中给出一系列非负整数,其间以空格分隔。当读到负整数时,表示输入结束,该数字不要处理。
|
|
||||||
|
|
||||||
输出格式:
|
|
||||||
在一行中输出最高分。
|
|
||||||
|
|
||||||
输入样例:
|
|
||||||
在这里给出一组输入。例如:
|
|
||||||
|
|
||||||
67 88 73 54 0 95 60 -1
|
|
||||||
输出样例:
|
|
||||||
在这里给出相应的输出。例如:
|
|
||||||
|
|
||||||
95*/
|
|
||||||
|
|
||||||
#include<stdio.h>
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
/*
|
|
||||||
7-10 ???????
|
|
||||||
?? 10
|
|
||||||
?? ???
|
|
||||||
?? ????
|
|
||||||
??????????M?N???????????????
|
|
||||||
|
|
||||||
????:
|
|
||||||
?????????????M?N(1=M=N=500)?
|
|
||||||
|
|
||||||
????:
|
|
||||||
????????M?N??????????????,?????????
|
|
||||||
|
|
||||||
????:
|
|
||||||
10 31
|
|
||||||
????:
|
|
||||||
7 143
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include<stdio.h>
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
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
|
|
||||||
*/
|
|
||||||
#include<stdio.h>
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
/*
|
|
||||||
7-4 求整数的位数及各位数字之和
|
|
||||||
分数 10
|
|
||||||
作者 C课程组
|
|
||||||
单位 浙江大学
|
|
||||||
对于给定的正整数N,求它的位数及其各位数字之和。
|
|
||||||
|
|
||||||
输入格式:
|
|
||||||
输入在一行中给出一个不超过10^9的正整数N。
|
|
||||||
|
|
||||||
输出格式:
|
|
||||||
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
|
|
||||||
|
|
||||||
输入样例:
|
|
||||||
321
|
|
||||||
输出样例:
|
|
||||||
3 6
|
|
||||||
*/
|
|
||||||
#include<stdio.h>
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
@ -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<stdio.h>
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
/**/
|
|
||||||
|
|
@ -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<stdio.h>
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
@ -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<stdio.h>
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
||||||
/*
|
|
||||||
7-9 找完数
|
|
||||||
分数 10
|
|
||||||
作者 陈建海
|
|
||||||
单位 浙江大学
|
|
||||||
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
|
|
||||||
|
|
||||||
输入格式:
|
|
||||||
输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。
|
|
||||||
|
|
||||||
输出格式:
|
|
||||||
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。
|
|
||||||
|
|
||||||
输入样例:
|
|
||||||
2 30
|
|
||||||
输出样例:
|
|
||||||
6 = 1 + 2 + 3
|
|
||||||
28 = 1 + 2 + 4 + 7 + 14
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include<stdio.h>
|
|
||||||
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++) //m到n之间找完数
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
38
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/找出一批学生的最高分.cpp
Normal file
38
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/找出一批学生的最高分.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
/* 7-1 找出一批学生的最高分
|
||||||
|
分数 10
|
||||||
|
作者 颜晖
|
||||||
|
单位 浙大城市学院
|
||||||
|
本题要求编写程序,找出最高分。
|
||||||
|
|
||||||
|
输入格式:
|
||||||
|
输入在一行中给出一系列非负整数,其间以空格分隔。当读到负整数时,表示输入结束,该数字不要处理。
|
||||||
|
|
||||||
|
输出格式:
|
||||||
|
在一行中输出最高分。
|
||||||
|
|
||||||
|
输入样例:
|
||||||
|
在这里给出一组输入。例如:
|
||||||
|
|
||||||
|
67 88 73 54 0 95 60 -1
|
||||||
|
输出样例:
|
||||||
|
在这里给出相应的输出。例如:
|
||||||
|
|
||||||
|
95 */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
58
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/找完数.cpp
Normal file
58
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/找完数.cpp
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
/* 7-9 找完数
|
||||||
|
分数 10
|
||||||
|
作者 陈建海
|
||||||
|
单位 浙江大学
|
||||||
|
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
|
||||||
|
|
||||||
|
输入格式:
|
||||||
|
输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。
|
||||||
|
|
||||||
|
输出格式:
|
||||||
|
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。
|
||||||
|
|
||||||
|
输入样例:
|
||||||
|
2 30
|
||||||
|
输出样例:
|
||||||
|
6 = 1 + 2 + 3
|
||||||
|
28 = 1 + 2 + 4 + 7 + 14
|
||||||
|
代码长度限制
|
||||||
|
16 KB
|
||||||
|
时间限制
|
||||||
|
400 ms
|
||||||
|
内存限制
|
||||||
|
64 MB */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
37
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求e的近似值.cpp
Normal file
37
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/求e的近似值.cpp
Normal file
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
/* 7-4 求整数的位数及各位数字之和
|
||||||
|
分数 10
|
||||||
|
作者 C课程组
|
||||||
|
单位 浙江大学
|
||||||
|
对于给定的正整数N,求它的位数及其各位数字之和。
|
||||||
|
|
||||||
|
输入格式:
|
||||||
|
输入在一行中给出一个不超过10
|
||||||
|
9
|
||||||
|
的正整数N。
|
||||||
|
|
||||||
|
输出格式:
|
||||||
|
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
|
||||||
|
|
||||||
|
输入样例:
|
||||||
|
321
|
||||||
|
输出样例:
|
||||||
|
3 6
|
||||||
|
代码长度限制
|
||||||
|
16 KB
|
||||||
|
时间限制
|
||||||
|
400 ms
|
||||||
|
内存限制
|
||||||
|
64 MB */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
@ -1,33 +1,35 @@
|
||||||
/*
|
/*
|
||||||
7-2 求简单交错序列前N项和
|
7-2 求简单交错序列前N项和
|
||||||
分数 10
|
分数 10
|
||||||
作者 C课程组
|
作者 C课程组
|
||||||
单位 浙江大学
|
单位 浙江大学
|
||||||
本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
|
本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
|
||||||
|
|
||||||
输入格式:
|
输入格式:
|
||||||
输入在一行中给出一个正整数N。
|
输入在一行中给出一个正整数N。
|
||||||
|
|
||||||
输出格式:
|
输出格式:
|
||||||
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。
|
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。
|
||||||
|
|
||||||
输入样例:
|
输入样例:
|
||||||
10
|
10
|
||||||
输出样例:
|
输出样例:
|
||||||
sum = 0.819
|
sum = 0.819
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include<stdio.h>
|
#include <stdio.h>
|
||||||
int main(){
|
int main()
|
||||||
|
{
|
||||||
int N;
|
int N;
|
||||||
scanf("%d",&N);
|
scanf("%d", &N);
|
||||||
int flag=1;
|
int flag = 1;
|
||||||
int a=1;
|
int a = 1;
|
||||||
double sum=0;
|
double sum = 0;
|
||||||
for(int i=1;i<=N;i++,a+=3){
|
for (int i = 1; i <= N; i++, a += 3)
|
||||||
sum+=1.0/a*flag;
|
{
|
||||||
flag=-flag;
|
sum += 1.0 / a * flag;
|
||||||
|
flag = -flag;
|
||||||
}
|
}
|
||||||
printf("sum = %.3lf",sum);
|
printf("sum = %.3lf", sum);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
49
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/约分最简分式.cpp
Normal file
49
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/约分最简分式.cpp
Normal file
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
50
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/统计素数并求和.cpp
Normal file
50
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/统计素数并求和.cpp
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
/* 7-10 统计素数并求和
|
||||||
|
分数 10
|
||||||
|
作者 张彤彧
|
||||||
|
单位 浙江大学
|
||||||
|
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
|
||||||
|
|
||||||
|
输入格式:
|
||||||
|
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
|
||||||
|
|
||||||
|
输出格式:
|
||||||
|
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
|
||||||
|
|
||||||
|
输入样例:
|
||||||
|
10 31
|
||||||
|
输出样例:
|
||||||
|
7 143
|
||||||
|
代码长度限制
|
||||||
|
16 KB
|
||||||
|
时间限制
|
||||||
|
400 ms
|
||||||
|
内存限制
|
||||||
|
64 MB */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
43
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/输出三角形字符阵列.cpp
Normal file
43
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第1次月考/输出三角形字符阵列.cpp
Normal file
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
/*
|
|
||||||
6-1 ?????????????
|
|
||||||
?? 10
|
|
||||||
?? ??
|
|
||||||
?? ??????
|
|
||||||
??????????????????????
|
|
||||||
|
|
||||||
??????:
|
|
||||||
int FindArrayMax( int a[], int n );
|
|
||||||
??a????????,n???a?????????????a??????
|
|
||||||
|
|
||||||
????????:
|
|
||||||
#include <stdio.h>
|
|
||||||
#define MAXN 10
|
|
||||||
|
|
||||||
int FindArrayMax( int a[], int n );
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
int i, n;
|
|
||||||
int a[MAXN];
|
|
||||||
|
|
||||||
scanf("%d", &n);
|
|
||||||
for( i=0; i<n; i++ ){
|
|
||||||
scanf("%d", &a[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("%d\n", FindArrayMax(a, n));
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
????????
|
|
||||||
????:
|
|
||||||
4
|
|
||||||
20 78 99 -14
|
|
||||||
????:
|
|
||||||
99
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#define MAXN 10
|
|
||||||
|
|
||||||
int FindArrayMax( int a[], int n );
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
int i, n;
|
|
||||||
int a[MAXN];
|
|
||||||
|
|
||||||
scanf("%d", &n);
|
|
||||||
for( i=0; i<n; i++ ){
|
|
||||||
scanf("%d", &a[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("%d\n", FindArrayMax(a, n));
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int FindArrayMax( int a[], int n ){
|
|
||||||
int maxnum=a[0];
|
|
||||||
for(int j=0;j<n;j++){
|
|
||||||
if(a[j]>maxnum) maxnum=a[j];
|
|
||||||
}
|
|
||||||
return maxnum;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -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<stdio.h>
|
|
||||||
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]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
/*
|
|
||||||
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
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include<stdio.h>
|
|
||||||
#include<math.h>
|
|
||||||
int main(){
|
|
||||||
int N,i,num,sum=0;
|
|
||||||
double final,avg,sum2=0;
|
|
||||||
scanf("%d",&N);
|
|
||||||
int a[N];
|
|
||||||
for(i=0;i<N;i++){
|
|
||||||
scanf("%d",&a[i]);
|
|
||||||
sum+=a[i];
|
|
||||||
}
|
|
||||||
avg=1.0*sum/N;
|
|
||||||
for(i=0;i<N;i++){
|
|
||||||
sum2+=pow(a[i]-avg,2);
|
|
||||||
}
|
|
||||||
final=sqrt(sum2/N);
|
|
||||||
printf("%.5lf",final);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
/*
|
|
||||||
7-3 ??????????
|
|
||||||
?? 10
|
|
||||||
?? ???
|
|
||||||
?? ???????
|
|
||||||
????????????????
|
|
||||||
|
|
||||||
????:
|
|
||||||
?????n( n<=1000,???????),??????? n???,?????????
|
|
||||||
|
|
||||||
????:
|
|
||||||
????????????
|
|
||||||
|
|
||||||
????:
|
|
||||||
????????????:
|
|
||||||
|
|
||||||
4
|
|
||||||
4 2 2 4
|
|
||||||
????:
|
|
||||||
?????????????:
|
|
||||||
|
|
||||||
4 2
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include<stdio.h>
|
|
||||||
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];
|
|
||||||
for(i=0;i<n;i++){
|
|
||||||
if(a[i]>max) max=a[i];
|
|
||||||
}
|
|
||||||
int cnt=0;
|
|
||||||
for(i=0;i<n;i++){
|
|
||||||
if(max==a[i]) cnt++;
|
|
||||||
}
|
|
||||||
printf("%d %d\n",max,cnt);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
/*
|
|
||||||
7-4 ?????????
|
|
||||||
?? 10
|
|
||||||
?? C???
|
|
||||||
?? ????
|
|
||||||
????????,??????????????????????,??????????????,???????????
|
|
||||||
|
|
||||||
??:????????????????
|
|
||||||
|
|
||||||
????:
|
|
||||||
??????????????N(=10),?????N???,?????????
|
|
||||||
|
|
||||||
????:
|
|
||||||
??????????????,???????????
|
|
||||||
|
|
||||||
????:
|
|
||||||
5
|
|
||||||
8 2 5 1 4
|
|
||||||
????:
|
|
||||||
1 2 5 4 8
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include<stdio.h>
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,46 +0,0 @@
|
||||||
/*
|
|
||||||
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
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include<stdio.h>
|
|
||||||
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<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(i=1;i<10;i++){
|
|
||||||
if(max<b[i]) max=b[i];
|
|
||||||
}
|
|
||||||
printf("%d:",max);
|
|
||||||
for(i=0;i<10;i++){
|
|
||||||
if(max==b[i]) printf(" %d",i);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
/*
|
|
||||||
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
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include<stdio.h>
|
|
||||||
int main(){
|
|
||||||
int n,i,num;
|
|
||||||
scanf("%d",&n);
|
|
||||||
int b[9];
|
|
||||||
for(i=0;i<n;i++){
|
|
||||||
b[i]=0;
|
|
||||||
}
|
|
||||||
for(i=0;i<n;i++){
|
|
||||||
scanf("%d",&num);
|
|
||||||
b[num]++;
|
|
||||||
}
|
|
||||||
for(i=1;i<=8;i++){
|
|
||||||
printf("%4d%4d\n",i,b[i]);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
/*
|
|
||||||
7-7 ???????
|
|
||||||
?? 10
|
|
||||||
?? ??
|
|
||||||
?? ???????
|
|
||||||
????
|
|
||||||
??????????????????????(???????,?????????????,??????)
|
|
||||||
????:
|
|
||||||
???????,??????????,?????2?30??1073741824,?????????????
|
|
||||||
????:
|
|
||||||
??????????????,????????????
|
|
||||||
????:
|
|
||||||
25 36 0 1
|
|
||||||
1024 1073741824
|
|
||||||
????:
|
|
||||||
11001
|
|
||||||
100100
|
|
||||||
0
|
|
||||||
1
|
|
||||||
10000000000
|
|
||||||
1000000000000000000000000000000
|
|
||||||
*/
|
|
||||||
#include<stdio.h>
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -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<stdio.h>
|
|
||||||
int main(){
|
|
||||||
int n,x,i,cnt=0,max;
|
|
||||||
scanf("%d %d",&n,&x);
|
|
||||||
int a[n];
|
|
||||||
for(i=0;i<n;i++){
|
|
||||||
scanf("%d",&a[i]);
|
|
||||||
}
|
|
||||||
for(i=0;i<n;i++){
|
|
||||||
if(a[i]==x){
|
|
||||||
max=i;
|
|
||||||
cnt++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(cnt==0) printf("Not Found\n");
|
|
||||||
else printf("%d",max);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
/*
|
|
||||||
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
|
|
||||||
*/
|
|
||||||
#include<stdio.h>
|
|
||||||
int main(){
|
|
||||||
int n;
|
|
||||||
scanf("%d",&n);
|
|
||||||
int a[n];
|
|
||||||
for(int i=0;i<n;i++){
|
|
||||||
scanf("%d",&a[i]);
|
|
||||||
}
|
|
||||||
for(int i=0;i<n-1;i++){
|
|
||||||
for(int 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(int k=1;k<n;k++){
|
|
||||||
printf(" %d",a[k]);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
69
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/交换最小值和最大值.cpp
Normal file
69
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/交换最小值和最大值.cpp
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
7-4 交换最小值和最大值
|
||||||
|
分数 10
|
||||||
|
作者 C课程组
|
||||||
|
单位 浙江大学
|
||||||
|
本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
|
||||||
|
|
||||||
|
注意:题目保证最大和最小值都是唯一的。
|
||||||
|
|
||||||
|
输入格式:
|
||||||
|
输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。
|
||||||
|
|
||||||
|
输出格式:
|
||||||
|
在一行中顺序输出交换后的序列,每个整数后跟一个空格。
|
||||||
|
|
||||||
|
输入样例:
|
||||||
|
5
|
||||||
|
8 2 5 1 4
|
||||||
|
输出样例:
|
||||||
|
1 2 5 4 8
|
||||||
|
代码长度限制
|
||||||
|
16 KB
|
||||||
|
时间限制
|
||||||
|
400 ms
|
||||||
|
内存限制
|
||||||
|
64 MB
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
/* 6-1 使用函数找出数组中的最大值
|
||||||
|
分数 10
|
||||||
|
作者 张泳
|
||||||
|
单位 浙大城市学院
|
||||||
|
本题要求实现一个找出整型数组中最大值的函数。
|
||||||
|
|
||||||
|
函数接口定义:
|
||||||
|
int FindArrayMax( int a[], int n );
|
||||||
|
其中a是用户传入的数组,n是数组a中元素的个数。函数返回数组a中的最大值。
|
||||||
|
|
||||||
|
裁判测试程序样例:
|
||||||
|
#include <stdio.h>
|
||||||
|
#define MAXN 10
|
||||||
|
|
||||||
|
int FindArrayMax( int a[], int n );
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int i, n;
|
||||||
|
int a[MAXN];
|
||||||
|
|
||||||
|
scanf("%d", &n);
|
||||||
|
for( i=0; i<n; i++ ){
|
||||||
|
scanf("%d", &a[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("%d\n", FindArrayMax(a, n));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
--请在这里填写答案--
|
||||||
|
|
||||||
|
输入样例:
|
||||||
|
4
|
||||||
|
20 78 99 -14
|
||||||
|
输出样例:
|
||||||
|
99
|
||||||
|
代码长度限制
|
||||||
|
16 KB
|
||||||
|
时间限制
|
||||||
|
400 ms
|
||||||
|
内存限制
|
||||||
|
64 MB */
|
||||||
|
|
||||||
|
int FindArrayMax(int a[], int n)
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
int max = a[0];
|
||||||
|
for (j = 0; j < n; j++)
|
||||||
|
{
|
||||||
|
if (a[j] > max)
|
||||||
|
max = a[j];
|
||||||
|
}
|
||||||
|
return max;
|
||||||
|
}
|
||||||
75
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/冒泡法排序之过程.cpp
Normal file
75
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/冒泡法排序之过程.cpp
Normal file
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
53
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/十进制转二进制.cpp
Normal file
53
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/十进制转二进制.cpp
Normal file
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
76
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/求集合数据的均方差.cpp
Normal file
76
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/求集合数据的均方差.cpp
Normal file
|
|
@ -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 <stdio.h>
|
||||||
|
#include <math.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
54
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/计算最大值出现的次数.cpp
Normal file
54
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/计算最大值出现的次数.cpp
Normal file
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
@ -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 <stdio.h>
|
||||||
|
#include <math.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
71
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/选择法排序之第k趟.cpp
Normal file
71
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第2次月考/选择法排序之第k趟.cpp
Normal file
|
|
@ -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 <stdio.h>
|
||||||
|
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]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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<stdio.h>
|
|
||||||
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;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;
|
|
||||||
}
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
/*
|
|
||||||
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
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include<stdio.h>
|
|
||||||
int main(){
|
|
||||||
int m,n,i,j,sum=0;
|
|
||||||
scanf("%d %d",&m,&n);
|
|
||||||
int A[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;
|
|
||||||
}
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
/*
|
|
||||||
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
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include<stdio.h>
|
|
||||||
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("W");
|
|
||||||
}
|
|
||||||
for(j=0;j<=i;j++)
|
|
||||||
{
|
|
||||||
printf("%4d",a[i][j]);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
/*
|
|
||||||
7-4 ????
|
|
||||||
?? 10
|
|
||||||
?? C???
|
|
||||||
?? ????
|
|
||||||
????n×n???,??????????????????????????????????????????????????????
|
|
||||||
|
|
||||||
????:
|
|
||||||
??????????n(1<n=10);??n?,????n???,????????
|
|
||||||
|
|
||||||
????:
|
|
||||||
??????????????????????????????????
|
|
||||||
|
|
||||||
????:
|
|
||||||
4
|
|
||||||
2 3 4 1
|
|
||||||
5 6 1 1
|
|
||||||
7 1 8 1
|
|
||||||
1 1 1 1
|
|
||||||
????:
|
|
||||||
35
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include<stdio.h>
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
44
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/删除重复字符.cpp
Normal file
44
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/删除重复字符.cpp
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
/* 7-10 删除重复字符
|
||||||
|
分数 10
|
||||||
|
作者 颜晖
|
||||||
|
单位 浙大城市学院
|
||||||
|
本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
|
||||||
|
|
||||||
|
输入格式:
|
||||||
|
输入是一个以回车结束的非空字符串(少于80个字符)。
|
||||||
|
|
||||||
|
输出格式:
|
||||||
|
输出去重排序后的结果字符串。
|
||||||
|
|
||||||
|
输入样例:
|
||||||
|
ad2f3adjfeainzzzv
|
||||||
|
输出样例:
|
||||||
|
23adefijnvz
|
||||||
|
代码长度限制
|
||||||
|
16 KB
|
||||||
|
时间限制
|
||||||
|
400 ms
|
||||||
|
内存限制
|
||||||
|
64 MB */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
63
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/判断回文字符串.cpp
Normal file
63
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/判断回文字符串.cpp
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
/* 7-7 判断回文字符串
|
||||||
|
分数 10
|
||||||
|
作者 陈春晖
|
||||||
|
单位 浙江大学
|
||||||
|
回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。
|
||||||
|
输入一个字符串,判断该字符串是否为回文,只考虑数字和字母字符,字母的大小写没有区别。
|
||||||
|
|
||||||
|
输入格式:
|
||||||
|
输入一个字符串。
|
||||||
|
|
||||||
|
输出格式:
|
||||||
|
是回文,一行输出yes,否则输出no。
|
||||||
|
|
||||||
|
输入样例:
|
||||||
|
在这里给出一组输入。例如:
|
||||||
|
|
||||||
|
A man,a plan; cnalPanama
|
||||||
|
输出样例:
|
||||||
|
在这里给出相应的输出。例如:
|
||||||
|
|
||||||
|
yes
|
||||||
|
代码长度限制
|
||||||
|
16 KB
|
||||||
|
时间限制
|
||||||
|
400 ms
|
||||||
|
内存限制
|
||||||
|
64 MB */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
/* 7-9 十六进制字符串转换成十进制非负整数
|
||||||
|
分数 10
|
||||||
|
作者 颜晖
|
||||||
|
单位 浙大城市学院
|
||||||
|
输入一个以#结束的字符串,滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,输出该字符串并将其转换为十进制数后输出。
|
||||||
|
|
||||||
|
输入格式:
|
||||||
|
输入在一行中给出一个不超过80个字符长度的、以#结束的非空字符串。
|
||||||
|
|
||||||
|
输出格式:
|
||||||
|
第1行中输出已滤去所有非十六进制字符的字符串。
|
||||||
|
在第2行中输出转换后的十进制数。题目保证输出结果在长整型范围内。
|
||||||
|
|
||||||
|
输入样例:
|
||||||
|
-zy1+Ak0-bq?#
|
||||||
|
输出样例:
|
||||||
|
1A0b
|
||||||
|
6667
|
||||||
|
代码长度限制
|
||||||
|
16 KB
|
||||||
|
时间限制
|
||||||
|
400 ms
|
||||||
|
内存限制
|
||||||
|
64 MB */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <math.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
47
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/字符串替换.cpp
Normal file
47
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/字符串替换.cpp
Normal file
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
64
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/打印杨辉三角.cpp
Normal file
64
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/打印杨辉三角.cpp
Normal file
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
50
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/求矩阵各行元素之和.cpp
Normal file
50
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/求矩阵各行元素之和.cpp
Normal file
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
66
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/求矩阵的局部极大值.cpp
Normal file
66
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/求矩阵的局部极大值.cpp
Normal file
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
@ -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 <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
55
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/矩阵运算.cpp
Normal file
55
c/sourcecode/朱森森带领的奇妙冒险/2022-2023第二学期单开班第3次月考/矩阵运算.cpp
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
/*
|
||||||
|
7-4 矩阵运算
|
||||||
|
分数 10
|
||||||
|
作者 C课程组
|
||||||
|
单位 浙江大学
|
||||||
|
给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。
|
||||||
|
|
||||||
|
输入格式:
|
||||||
|
输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。
|
||||||
|
|
||||||
|
输出格式:
|
||||||
|
在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
|
||||||
|
|
||||||
|
输入样例:
|
||||||
|
4
|
||||||
|
2 3 4 1
|
||||||
|
5 6 1 1
|
||||||
|
7 1 8 1
|
||||||
|
1 1 1 1
|
||||||
|
输出样例:
|
||||||
|
35
|
||||||
|
代码长度限制
|
||||||
|
16 KB
|
||||||
|
时间限制
|
||||||
|
400 ms
|
||||||
|
内存限制
|
||||||
|
64 MB
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
/* 7-6 统计字符串中数字字符的个数
|
||||||
|
分数 10
|
||||||
|
作者 颜晖
|
||||||
|
单位 浙大城市学院
|
||||||
|
输入一个字符串,统计其中数字字符('0'……'9')的个数。
|
||||||
|
|
||||||
|
输入格式:
|
||||||
|
输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
|
||||||
|
|
||||||
|
输出格式:
|
||||||
|
输出所统计的数字字符的个数。
|
||||||
|
|
||||||
|
输入样例:
|
||||||
|
It's 512?
|
||||||
|
|
||||||
|
输出样例:
|
||||||
|
3
|
||||||
|
|
||||||
|
代码长度限制
|
||||||
|
16 KB
|
||||||
|
时间限制
|
||||||
|
400 ms
|
||||||
|
内存限制
|
||||||
|
64 MB */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
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;
|
||||||
|
}
|
||||||
35
c/sourcecode/朱森森带领的奇妙冒险/C语言程序设计入门过关题集-顺序结构/输出三角形.cpp
Normal file
35
c/sourcecode/朱森森带领的奇妙冒险/C语言程序设计入门过关题集-顺序结构/输出三角形.cpp
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
/* 7-4 输出三角形
|
||||||
|
分数 20
|
||||||
|
作者 张高燕
|
||||||
|
单位 浙大城市学院
|
||||||
|
本题要求编写程序,输出指定的由“*”组成的三角图案。
|
||||||
|
|
||||||
|
输入格式:
|
||||||
|
本题无输入
|
||||||
|
|
||||||
|
输出格式:
|
||||||
|
按照下列格式输出由“*”组成的三角图案。
|
||||||
|
|
||||||
|
****
|
||||||
|
***
|
||||||
|
**
|
||||||
|
*
|
||||||
|
代码长度限制
|
||||||
|
16 KB
|
||||||
|
时间限制
|
||||||
|
400 ms
|
||||||
|
内存限制
|
||||||
|
64 MB */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
printf("****\n");
|
||||||
|
printf("***\n");
|
||||||
|
printf("**\n");
|
||||||
|
printf("*\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
33
c/sourcecode/朱森森带领的奇妙冒险/C语言程序设计入门过关题集-顺序结构/输出菱形图案.cpp
Normal file
33
c/sourcecode/朱森森带领的奇妙冒险/C语言程序设计入门过关题集-顺序结构/输出菱形图案.cpp
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
/* 7-5 输出菱形图案
|
||||||
|
分数 20
|
||||||
|
作者 张高燕
|
||||||
|
单位 浙大城市学院
|
||||||
|
本题要求编写程序,输出指定的由“A”组成的菱形图案。
|
||||||
|
|
||||||
|
输入格式:
|
||||||
|
本题无输入
|
||||||
|
|
||||||
|
输出格式:
|
||||||
|
按照下列格式输出由“A”组成的菱形图案。
|
||||||
|
|
||||||
|
A
|
||||||
|
A A
|
||||||
|
A
|
||||||
|
代码长度限制
|
||||||
|
16 KB
|
||||||
|
时间限制
|
||||||
|
400 ms
|
||||||
|
内存限制
|
||||||
|
64 MB */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
printf(" A\n");
|
||||||
|
printf("A A\n");
|
||||||
|
printf(" A\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -1 +1 @@
|
||||||
我永远喜欢朱森森030
|
# 我永远喜欢朱森森030
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue