岳阳网站开发报价,亚马逊html编辑器,友情链接的方式如何选择,在线购物系统的分析与设计一、码题集正常刷题
1、MT1159 指定集合
某数组含有N个元素#xff0c;输出那些数字来自集合{4,5,6}的元素#xff0c;按原序。没有就输出-1。
格式
输入格式#xff1a;
第一行输入数组长度N#xff0c;第二行输入数组元素#xff0c;整型#xff0c;空格分隔。
输…一、码题集正常刷题
1、MT1159 指定集合
某数组含有N个元素输出那些数字来自集合{4,5,6}的元素按原序。没有就输出-1。
格式
输入格式
第一行输入数组长度N第二行输入数组元素整型空格分隔。
输出格式
输出整型空格分隔。
样例 1
输入
4
1 2 3 4输出
4 分析过程
刚开始我是尝试了一下将满足{456}的元素存入b[i]b[i]初始化为全0中然后判断b[i]不为0的元素并输出。
#includebits/stdc.h using namespace std;int main( )
{int N,temp,flag 0;cin N;int i,j;int a[N-1],b[N-1]{0};for(int i0;iN;i){cin a[i];}//首先判断a[N-1]中是否有{456}中的数字如果有存入b[N-1]中for(int i0;iN;i){if(a[i]4||a[i]5||a[i]6){// cout a[i]###;b[i]a[i];// cout b[i] n;flag 1;}else flag 0;}// cout flag !!;if(flag0){cout -1;}for(int i0;iN;i){if(b[i]!0){printf(%d ,b[i]);}}return 0;
}
但是后面发现不需要想得那么复杂题目要求原序输出是按照输入的数组中的数组输出而不是按照456的顺序输出所以在输入之后直接判断是否是456如果是就直接输出即可所以不需要我刚开始想的那么复杂最后要注意的是输出的-1是整型而不是字符型我的前面的代码是可以实现的但是我把-1设成了字符型所以错了修改之后就可以通过全部用例了。最终得到的代码如下
实现代码
#includebits/stdc.h using namespace std;int main( )
{int N,flag 0;cin N;int a[N-1];for(int i0;iN;i){cin a[i];}//首先判断a[N-1]中是否有{456}中的数字for(int i0;iN;i){if(a[i]4||a[i]5||a[i]6){printf(%d ,a[i]);flag 1;}else flag 0;}if(flag0){cout -1 ;}return 0;
}
审题的时候需要仔细一点我刚开始审题的时候就审错了还以为是看数组是否是顺序如果是就输出数组中元素的个数结果第二次审题才发现是让查看数组中哪些元素来自{456}然后输出来。
2、MT1161 N的零
输入正整数N将N的所有零转换为5。没有0就原样输出。不考虑不合理的输入等特殊情况。
格式
输入格式
输入正整数N
输出格式
输出整型
样例 1
输入
5002输出
5552
解题思路
首先判断输入值的位数然后将输入值存入字符数组当中然后从后往前查看字符数组的每个元素是否为0是0的话就转换为5不为0直接输出。
实现代码
#includebits/stdc.h using namespace std;int main( )
{int N,count0;cin N;int aN;while(a!0){count;a/10;}// cout count;int b[10];for(int i0;icount;i){b[i]N%10;N/10;}for(int icount-1;i0;i--){if(b[i]0){cout 5;}else{cout b[i];}}return 0;
} 二、补充小练习 1、MT1088 温度对照
输出华氏温度F-50F200和摄氏温度C对照表其计算公式为C9(F−32)/5。不考虑非法输入等特殊情况。
输入格式输入华氏温度F为整型
输出格式输出摄氏温度C为实型
输入样式
-50
输出样式
-147.600000
本题相关知识点 语言基础公式与计算 #includestdio.h
int main()
{ int F;double C;scanf(%d,F);C (double)9 * (F - 32)/5;//注意此处要将答案强制转化为double型否则依旧会出错。printf(%lf,C);return 0;
} 注意点1、scanf后面必须有地址符 2、最终的结果要求是C为实型所以必须强制转换过来不然输出的答案会自动取舍 3、double型输出printf)时用%lf还是%f都行。 2、九进制转十进制
问题描述
本题为填空题只需要算出结果后在代码中使用输出语句将所填结果输出即可。
九进制正整数(2022)9 转换成十进制等于多少
运行限制 最大运行时间1s 最大运行内存: 512M
代码实现 #include iostream
using namespace std;
int main()
{// 请在此输入您的代码cout 2*1 2*9 0*81 2*81*9;return 0;
}
本题实质上是考察了其他进制转十进制这个运算对于整数部分运算过程就是从所给整数个位开始乘以所给整数的进制数的0次方然后加上十位数乘以所给进制数的1次方依次向上计算直至全部计算完毕。例如所给整数2022对应进制数九进制所以计算过程为2*9^0 2*9^1 0*9^2 2*9^3,然后计算得到结果即可。 明天继续吧。