解题报告-南阳理工学院16级新生十一检测
来源:互联网 发布:js注册表单验证代码 编辑:程序博客网 时间:2024/04/29 22:45
感谢软件学院王明轩与倪乾栋两位学长提供NSWOJ
A - 爱数星星的学姐
感谢衡圆圆学姐出题
方法一:用一维字符串数组接收N次,每次接收数据都遍历一遍数组统计星星数量
方法二:二维字符串数组接收全部数据,然后遍历二维字符串数组
#include<stdio.h>#include<string.h>int main(){ char a[210][210]; int m,n,i,j; while(~scanf("%d %d",&n,&m)) { getchar(); if(n==0&&m==0) break; int k=0; for(i=0; i<n; i++) { for(j=0; j<m; j++) scanf("%c",&a[i][j]); getchar(); } for(i=0; i<n; i++) for(j=0; j<m; j++) { if(a[i][j]=='*') k++; } printf("%d\n",k); } return 0;}
B - 矩阵中的最大值
感谢肖莎莎学姐出题
方法一:用一维数组接收N次,每次记录接收数据中的最大值
方法二:二维数组接收数据,两层for循环遍历一遍二维数组同时记录最大值
#include<stdio.h>int a[1005][1005];int main(){ int t; int n,m; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&m); int max=-0x3f3f3f3f; int a1,b1,i,j; for(i=1; i<=n; i++) { for(j=1; j<=m;j++) { scanf("%d",&a[i][j]); if(a[i][j]>max) { max=a[i][j]; a1=i; b1=j; } } } printf("%d %d\n",a1,b1); } return 0;}
C - WY的伪冒泡排序
感谢自己出题
签到题,坑点在于给的是实数,并要求保留两位小数,用float或者double类型就好
#include<stdio.h>int main(){ int T; scanf("%d",&T); while(T--) { double X,Y,Z,T;//说了是实数,当然用double或者float了 scanf("%lf%lf%lf",&X,&Y,&Z); if(X>Y) { T=X; X=Y; Y=T; } if(X>Z) { T=X; X=Z; Z=T; } if(Y>Z) { T=Y; Y=Z; Z=T; } printf("%.2lf %.2lf %.2lf\n",X,Y,Z); } return 0;}
D - WXZ的下标游戏
感谢王小珍学姐出题
对于给出的N个数,把这些数作为数组下标,他们对应的序号作为数组内的值
例如给出三个数5 9 4,他们的序号分别是1 2 3,对数组num[]这样赋值:num[5]=1,num[9]=2,num[4]=3。接着M次查询,如果想查询X的序号,直接输出num[X]即可
#include<stdio.h>int main(){ int n,m; int a[100],c[100]; while(scanf("%d",&n)!=-1) { if(n==0) break; scanf("%d",&m); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=m;i++) { int b; scanf("%d",&b); for(int j=1;j<=n;j++) { if(a[j]==b) { c[i]=j; } } } for(int i=1;i<=m;i++) printf("%d ",c[i]); printf("\n"); }}
E - 回文串判断2
感谢吴荣学长出题
思路都在注释里
#include<stdio.h>#include<string.h>int main(){ int N; scanf("%d",&N); while(N--) { char str[1005]; scanf("%s",str); int len=strlen(str); int left=0;//字符串左端下标 int right=len-1;//字符串右端下标 int flag=1;//是回文串 while(left<len&&right>=0)//循环条件:下标未越界 { if(str[left]==str[right])//如果两个字符相等 { left++;//左端向右移 right--;//右端向左移 } else//遇到两个字符不相等 { flag=0;//标记为不是回文串 break;//结束循环 } } if(flag) printf("YES\n"); else printf("NO\n"); } return 0;}
F - A simple problem created by GM
感谢耿曼学姐出题
头文件看不懂?sort不知道是什么?
没关系,把你看不懂的头文件都删掉,sort换成冒泡排序
还不会?没关系,这题本来就是防AK的,毕竟编程都才入门一周
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;int a[105];int main(){ int T; scanf("%d",&T); while(T--) { int n; int num=0; scanf("%d",&n); for(int i=0; i<n; i++) { scanf("%d",&a[i]); if(a[i]%2!=0) { num++; } } a[n]=num; sort(a,a+n+1); printf("%d",a[0]); for(int i=1; i<=n; i++) { if(a[i]!=a[i-1]) printf(" %d",a[i]); } printf("\n"); }}
G - ZP的汽车调度
感谢张盼学长出题
此题防AK,果然模拟大法好
#include<stdio.h>#include<math.h>#include<string.h>#define PI 3.1415927int main(){ int ncase; scanf("%d",&ncase); while(ncase--) { int a[5][100],x;//第一个下标代表车站编号,第二个下标代表每个车站中车的编号有为1没有为0 memset(a,0,sizeof(a)); char b; for(int i=0; i<5; i++) for(int j=0; j<2; j++) { scanf("%d",&x);//把输入的汽车编号赋值为1; a[i][x]=1; } int m; scanf("%d",&m); while(m--) { getchar(); scanf("%c",&b); int c,d,e; scanf("%d%d%d",&c,&d,&e); if(b=='p')//e从d到c a[d][e]=0,a[c][e]=1;//开出赋值为0,开进赋值为1 else//e从c到d a[c][e]=0,a[d][e]=1; } for(int i=0; i<5; i++)//扫描每一个车站 { for(int j=0; j<100; j++)//扫一遍不为0的就代表有这辆车,输出编号,否则不输出。 if(a[i][j]) printf("%d ",j); printf("\n"); } printf("\n"); } return 0;}
H - WY的另类乘法
为了降低难度,都说了是两个三位数,拆开加一块再乘就可以了
不会拆数的话去做水仙花数
#include<stdio.h>int main(){ int T; scanf("%d",&T); while(T--) { int N,M; scanf("%d%d",&N,&M); printf("%d\n",(N%10+N%100/10+N/100)*(M%10+M%100/10+M/100)); } return 0;}
I - GLaDOS的日期计算
感谢李朝强学长出题
另一个版本的日期计算
判断闰年,逐月累加即可
标程采用模块化编程,写了两个自定义函数
看不懂没关系,我们有百度啊
#include<stdio.h>int judge(int year){ if(year%4==0&&year%100!=0||year%400==0) return 1; return 0;}int days(int year,int month){ if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) return 31; if(month==2) { if(judge(year)) return 29; return 28; } return 30;}int main(){ int year,beginmonth,beginday,endmonth,endday; while(scanf("%d%d%d%d%d",&year,&beginmonth,&beginday,&endmonth,&endday)!=EOF) { int sum=0,i; if(beginmonth==endmonth) sum=endday-beginday+1; else { sum+=days(year,beginmonth)-beginday+1; sum+=endday; for(i=beginmonth+1;i<endmonth;i++) sum+=days(year,i); } printf("%d\n",sum); }}
J - 饥渴的lzq学长
不感谢虽然出题但是恶意攻击lzp的刘玉强
这模拟对新生还是挺难
#include<stdio.h>int main(){ int t,n,num; char str[5]; scanf("%d",&t); while(t--) { scanf("%d",&n); int ma=0,mi=100000; int sum=0; for(int i=0;i<n;i++) { scanf("%s%d",str,&num); if(ma<num) ma=num; if(num<mi) mi=num; sum+=num; } printf("%d %d",ma,mi); if(n!=16) printf("\nTotal number of girls can not be determined!\n"); else printf(" %d\n",sum); } return 0;}
- 解题报告-南阳理工学院16级新生十一检测
- 南阳理工学院软件、计科16级新生联合月赛(10月)
- 南阳理工学院
- 南阳理工学院 OJ 16 矩形嵌套
- 南阳理工OJ915解题报告
- 有感“南阳理工学院”
- 南阳理工学院第九题
- 南阳理工学院25题
- 南阳理工学院OJ
- 南阳理工学院OJ
- 南阳理工学院16年个人积分赛第一场总结
- 南阳理工学院16年个人积分赛第二场总结
- 南阳理工学院信息检索平台
- 南阳理工学院csdn发展计划书
- 南阳理工学院软件月赛
- 南阳理工学院软件月赛
- 南阳理工学院--蛇形填数
- 南阳理工学院-n-1位数
- 进程的创建
- http和https协议
- c++cin输入
- hibernate--马
- 201503-5-最小花费
- 解题报告-南阳理工学院16级新生十一检测
- 远程代码注入的介绍与代码防御
- 564.Backpack VI-背包问题 VI(中等题)
- 文章标题
- 自动寻路算法演示
- 201409-3-字符串匹配
- yii--session 和 php中的 session
- C语言中关于字符串的一些常用函数
- 数学上的一些小技巧韩信点兵的问题