赞
踩
开学后就很少抽空写写题了,所以这次只有几道题目和大家分享一下了。
有些真题也有些VIP基础题,想和大家分享一下。(有些是仿的其他博主的代码,,,,因为有些确实难(呜呜呜~))
不多说,上代码
1.时间转换
给定一个以秒为单位的时间t,要求用“<H>:<M>:<S>”的格式来表示这个时间。
<H>表示时间,<M>表示分钟,而<S>表示秒,它们都是整数且没有前导的“0”。
例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。
一种解法:计算步骤为 时(t/3600)->分(t%3600/60)->秒(t%3600%60)
- #include<stdio.h>
- int main()
- {
- int t,h,m,s;
- scanf("%d",&t);
- h=t/3600;
- m=(t%3600)/60;
- s=((t%3600)%60);
- printf("%d:%d:%d",h,m,s);
- return 0;
- }
钟另一种解法:计算步骤 秒(满60秒钟清零,分钟加1)->分(满60分钟清零,时加1)->时
- #include<stdio.h>
- int main()
- {
- int h=0,m=0,s=0,i,n;
- scanf("%d",&n);
- for(i=0;i<n;i++)
- {
- s++;
- if(s==60)
- {
- m++;
- s=0;
- }
- if(m==60)
- {
- h++;
- m=0;
- }
- }
- printf("%d:%d:%d",h,m,s);
- return 0;
- }
2.字符串对比
给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:
1:两个字符串长度不等。比如 Beijing 和 Hebei
2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing
3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing
4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing
编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。
易错:一定要区分3和4,不注意会将4误判成3,所以写代码一定要严谨,加上排除3的前提条件。
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char a[2][100];
- int i,n,k=0,m;
- scanf("%s%s",a[0],a[1]);
- for(i=0;a[0][i]!=0;i++)
- {
- if(strlen(a[0])==strlen(a[1])&&a[0][i]-a[1][i]!=32&&a[1][i]-a[0][i]!=32&&a[1][i]!=a[0][i])
- {
- printf("4");
- return 0;
- }
- }
- if(strlen(a[0])!=strlen(a[1])){printf("1");return 0;}
- else if(strcmp(a[0],a[1])==0){printf("2");return 0;}
- else {printf("3");return 0;}
- }
3.矩阵乘法
给定一个N阶矩阵A,输出A的M次幂(M是非负整数)
例如:
A =
1 2
3 4
A的2次幂
7 10
15 22
强调:矩阵运算中 1.矩阵的0次幂为单位矩阵(对角线全为1,其余全为0)
2.矩阵的1次幂为原矩阵(矩阵本身)
3.矩阵a的m次幂=(a的m-1次幂)*矩阵a
步骤:a的第1行的第一个元素乘以b中第1列的第一个元素,a的第1行的第二个元素乘以b中第1列的第二个元素,结果相加存入c的第1行第1列,a的第1行的第1个元素乘以b中第二列的第1个元素,a的第二行的第二个元素乘以b中第二列的第二个元素,结果相加存入c的第1行第2列.。。。。a[i][k]*b[k][j]结果存入c[i][j]。
a的第i行和b的每一列相乘。
- #include<stdio.h>
- int main()
- {
- int N,M,i,j,k,p,n=0;
- long long c[50][50],a[50][50],b[50][50];
- scanf("%d %d",&N,&M);
- for(i=0;i<N;i++)
- {
- for(j=0;j<N;j++)
- {
- scanf("%d",&a[i][j]);
- b[i][j]=a[i][j];
- }
- }
- if(M<=1)
- {
- for(i=0;i<N;i++)
- {
- for(j=0;j<N;j++)
- {
- if(M==0)
- {
- if(i==j)a[i][j]=1;
- else a[i][j]=0;
- printf("%d ",a[i][j]);
- }
- else printf("%d ",a[i][j]);
- }
- printf("\n");
- }
- }
- else
- {
- for(p=0;p<M-1;p++)
- {
- for(i=0;i<N;i++)
- {
- for(j=0;j<N;j++)
- {
- for(k=0;k<N;k++)
- {
- n+=a[i][k]*b[k][j];
- }
- c[i][j]=n;
- n=0;
- }
-
- }
- for(i=0;i<N;i++)
- {
- for(j=0;j<N;j++)
- {
- if(p==M-2)printf("%lld ",c[i][j]);
- else b[i][j]=c[i][j];
- }
- if(p==M-2)printf("\n");
-
- }
- }
- }
-
- return 0;
- }
4.矩形交面积
平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。
对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。
注意:题中只说明给出相对顶点的坐标,但是并没有明确说是哪两个(左下右上还是左上右下),所以要分多种考虑。给出下面分析:
- #include<stdio.h>
- double min(double a,double b)
- {
- if(a<b)return a;
- else return b;
- }
- double max(double a,double b)
- {
- if(a>b)return a;
- else return b;
- }
- int main()
- {
- double x1,y1,x2,y2,x3,y3,x4,y4,area,a1,a2,b1,b2;
- scanf("%lf%lf %lf%lf %lf%lf %lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);
- a1=max(min(x1,x2),min(x3,x4));
- a2=min(max(x1,x2),max(x3,x4));
- b1=max(min(y1,y2),min(y3,y4));
- b2=min(max(y1,y2),max(y3,y4));
- if(a2>a1 && b2>b1)printf("%.2lf",(a2-a1)*(b2-b1));
- else printf("0.00");
- return 0;
- }
5.时间显示
输入一个毫秒值例如
46800999
要求输出
13:00:00
缺位补0
注意:设置时钟时一定要设置当时钟到达24时清零的动作,因为题目中给出的毫秒不一定是在一整天毫秒时间内(24小时->毫秒),可能存在不止一天的情况,但是题目只要求输出一天内的时、分、秒,所以要对时钟进行设置。
- #include<stdio.h>
- int main()
- {
- int h=0,m=0,s=0,n,i;
- scanf("%d",&n);
- n/=1000;//转为秒
- for(i=0;i<n;i++)
- {
- s++;
- if(s==60)//进位分钟
- {
- s=0;
- m++;
- }
- if(m==60)//进位时钟
- {
- m=0;
- h++;
- }
- if(h==60)//时钟设置
- {
- h=0;
- }
- }
- printf("%.2d:%.2d:%.2d",h,m,s);//输出各为两位的时间数字
- return 0;
- }
6.门牌制作
小蓝要为一条街的住户制作门牌号。这条街一共有2020位住户,门牌号从1到2020编号。
小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将字符粘贴到门牌上,
例如门牌1017需要依次粘贴字符1、0、1、7,即需要1个字符0,2个字符1,1个字符7。
请问要制作所有的1到2020号门牌,总共需要多少个字符2?
分析:对数进行分解,从个位、十位、百位....进行提取去判断是否为2,是则被记录,否则不做处理。
- #include<stdio.h>
- int main()
- {
- int i,j,k=0;
- for(i=1;i<2021;i++)
- {
- j=i;
- while(j)
- {
- if(j%10==2)k++;
- j/=10;
- }
- }
- printf("%d",k);
- }
在参考其他博主代码的基础上增加了些自己的见解,希望对大家的学习有用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。