一个小bit在初入江湖遇到的问题

简介: 一个小bit在初入江湖遇到的问题

一、大小写的转换

题目要求:实现字母大小写,多组输入输出。

所遇到的问题:对于getchar()内的判断条件无从下手;对于ascll表掌握不全;

实现代码如下:


1. #include<stdio.h>
2. 
3. int main()
4. 
5. {
6. 
7.     int ch = 0;
8. 
9.     while ((ch = getchar()) != EOF)//EOF意为-1。本语句即只要输入项是字符即可打印
10. 
11.     {
12. 
13.         //因为回车也算一个字符,所以在输入第一个字符换行后,getchar会读取换行的回车键
14. 
15.         //换行的回车被读取,若防止回车被读取,可在其前面多读取一次消耗回车
16. 
17.         getchar();
18. 
19.         putchar(ch + 32);
20. 
21.         printf("\n");
22. 
23.     }
24. 
25.     return 0;
26. 
27. 
28.

对于大小字母转换,ascll值相差32,具体使用请参考详细的ascll表。


 

二、缩进二进制

题目要求:我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。

输出描述:十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X

1. #include <stdio.h>
2. int main() {
3. int a=1234;
4.     printf("0%o 0X%X",a,a);
5. return 0;
6. }

printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数,并使用修饰符“#”控制前导显示


关于进制

1.十进制: 都是以0-9这九个数字组成,不能以0开头。

2.二进制: 由0和1两个数字组成。

3.八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。

4.十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x开始。

进制转换博主还没有接触,这一题所用的知识点就这么多

三、进制A+B

题目要求:输入一个十六进制数a,和一个八进制数b,输出a+b的十进制结果(范围-231~231-1)。

1. #include <stdio.h>
2. int main() {
3. int a,b;
4.     scanf("%x %o",&a,&b);
5. //十六进制Hexadecimal一般以0x开头,例如0xFF。八进制Octal,一般以0开头,例如07。
6.     printf("%d",a+b);
7. return 0;
8. }


这题解题思路与上题大概一致,都用了“%x” “%o”进行简单转换;

四、2的n次方的计算

题目要求:

不使用累计乘法的基础上,通过移位运算(<<)实现2的n次方的计算。


1. #include <stdio.h>
2. int main()
3. {
4. int n;
5.     scanf("%d",&n);
6.     printf("%d",2<<(n-1));
7. //在2进制中,2的表示为00000010
8. //我们只使用移位符来完成2的n次方,仅需使这个1往左移动。
9. //如4:00000100;8:00001000
10. //要注意为什么这里是(n-1)
11. //因为2本身已经在第二位了,是2的1次方。
12. return 0;
13. }

 

对于二进制的写法博主大大没有掌握,但有另一种解题方法进行2n次方的计算


1. #include <stdio.h>
2. #include<math.h>
3. //#include<math.h> 是包含math头文件的意思, .h是头文件的扩展名(header file),这一句声明了本程序要用到标准库中的 math.h文件。math.h头文件中声明了常用的一些数学运算,比如乘方,开方运算等等
4. int main() {
5. int a, b;
6.     scanf("%d",&a);
7.     b=pow(2,a);
8. //乘方的应用
9.     printf("%d",b);
10. return 0;
11. }

也可以这样写

1. #include <stdio.h>
2. int main()
3. {
4. int x;
5.     scanf("%d",&x);
6. int i,y;
7. for(i=0;i<x;i++)
8.     {
9.         y=y*2;
10.     }
11.     printf("%d",y);
12. return 0;
13. }


五、统计成绩


描述


输入n科成绩(浮点数表示),统计其中的最高分,最低分以及平均分。

数据范围:1≤�≤100 1≤n≤100  , 成绩使用百分制且不可能出现负数


输入描述:


两行,

第1行,正整数n(1≤n≤100)

第2行,n科成绩(范围0.0~100.0),用空格分隔。


输出描述:


输出一行,三个浮点数,分别表示,最高分,最低分以及平均分(小数点后保留2位),用空格分隔。


1. int main()
2. {
3. int n,i=0;
4.     scanf("%d",&n);
5. float a=0,b=0,c=100.1,d=0;
6. //成绩范围为(0.0-100.0),因为后面c与a要进行比较,需给c一个较大值,也可以给其他值,只要大于100就可以;
7. for (i;i<n;++i)
8.     {
9.         scanf("%f",&a);
10. if(a>b)b=a;
11. //a与b进行比较,如果a>b,则将a值赋给b,依次类推得出最大值;
12. if(a<c)c=a;
13. //与最大值同理
14.         d=a+d;
15. 
16.     }
17.     printf("%.2f %.2f %.2f",b,c,d/n);
18. //"%.2f"是为了保留两位小数
19. return 0;
20. }


以上就是小bit遇到的问题,并已得到解决。希望这篇博客能激励自己也激励和博主一样的小bit。

长风破浪会有时,直挂云帆济沧海。

相关文章
|
1月前
|
Python
【10月更文挑战第9天】「Mac上学Python 17」小学奥数篇3 - 找出神秘数字
本篇将通过 Python 和 Cangjie 双语解决一个有趣的数字谜题,培养学生的数学推理能力以及编程的逻辑思维。
126 7
|
5月前
|
安全 编译器 程序员
【C++航海王:追寻罗杰的编程之路】C++的类型转换
【C++航海王:追寻罗杰的编程之路】C++的类型转换
39 0
|
6月前
|
算法 网络协议 Java
备战春招狂刷这份大厂级24W字java面试手册2个月可成功逆袭上岸!
前言 2023年金九银十程序员跳槽或者找工作并不理想,迟迟找不到工作,甚至大厂还进行几轮裁员,导致整个就业市场都不是太好! 出现这种情况是因为中美贸易战,导致大环境不好、大厂裁员、就业情况差、企业要求变高、各行各业越来越卷,尤其是程序员,处于这个阶段,感觉特别明显! 对于程序员这个群体来说,java程序员的占比就非常之高,就业市场等于说是千军万马过独木桥,简直可以说是太难了!卷不过、根本卷不过! 在这里想说的是,大环境已经这样了,我们已经也无法左右这个市场,根本没有选择的余地,所以,打不过就加入,努力的提升自己能技术能力,直接吊打面试官! 这不,就迎来了大厂级24W字java面试手册!
|
6月前
|
监控 Java 应用服务中间件
硬核神作|2w字带你拿下Sentinal
硬核神作|2w字带你拿下Sentinal
|
6月前
|
算法 NoSQL Java
“北头条,南BIGO”,BIGO社招Java三面面经分享 怒斩心动offer
我了解到的是:BIGO给予员工机会去发展和创造。在大厂里较大概率会一直接需求做需求,重复性的更新和迭代,在这里有更多机会可以经历从0到1,能发挥自己的能力进行创造。并且在同批次的offer中,BIGO的薪资最有竞争力。
|
11月前
|
NoSQL 算法 Java
985硕,秋招面试30家企业,怒斩阿里、字节、美团offer
6.1号开始投简历,7.6号开始第一场面试,9.30号收到最后一家意向书,我的秋招结束了! 找工作期间薅了网上不少大佬的羊毛,特别感谢期间给予帮助的各位前辈们。在此记录下秋招的全过程,也算是对帮助我的大佬们的回馈,十一假期期间码字,面试问题都排在后面(先看看我是如何一点点薅羊毛的),看得出我对帮助过我的大佬们的重视!(舔就完了,滋滋)
|
11月前
|
架构师 前端开发 Java
自从读了字节技术总监的架构师成长指南,面试像开挂“百发百中”
最近有幸在一位字节跳动技术总监手里扒到了这份架构师成长指南,将部分知识章节发布到了在知乎上竟然获得了5000+点赞!
|
消息中间件 算法 Java
裸辞跳槽底气!字节在职大佬“Java面试总汇2023”大厂都在考
前言 Java这一行入行容易,但想要精通可就不简单了。不仅需要一定的运气,能力更是必不可少的。而现在的互联网行业懂得都懂,稍一松懈可能就会被社会淘汰,做为开发工程师的我们只有不断的学习进步才能让自己获得更满意的薪资和工作。
|
算法 网络协议 Java
备战秋招狂刷这份大厂级24W字java面试手册2个月可成功逆袭上岸!
23年金三银四程序员跳槽或者找工作并不理想,迟迟找不到工作,甚至大厂还进行几轮裁员,导致整个就业市场都不是太好! 出现这种情况是因为中美贸易战,导致大环境不好、大厂裁员、就业情况差、企业要求变高、各行各业越来越卷,尤其是程序员,处于这个阶段,感觉特别明显! 对于程序员这个群体来说,java程序员的占比就非常之高,就业市场等于说是千军万马过独木桥,简直可以说是太难了!卷不过、根本卷不过! 在这里想说的是,大环境已经这样了,我们已经也无法左右这个市场,根本没有选择的余地,所以,打不过就加入,努力的提升自己能技术能力,直接吊打面试官! 这不,就迎来了大厂级24W字java面试手
88 0
|
架构师 大数据 项目管理
3000字,如何讲清楚专业知识? by彭文华
3000字,如何讲清楚专业知识? by彭文华