C语言每日一题之No.1

鉴于在学校弱弱的接触过C,基本上很少编程,C语言基础太薄弱。刚好目前从事的是软件编程,难度可想而知。严重影响工作效率,已无法再拖下去了。为此,痛下决心恶补C语言。此前只停留在看书,光看好像也记不住,C这东西毕竟是练出来的,所以从今天开始,每日一道C语言题目,从题目入手来补知识漏洞。题目比较基础,如不堪入目,还请见谅。

题目:输入三个整数,输出最大的数

思路:定义三个变量用来存储输入的整数

比较三个变量的大小,找到最大的数

定义一个变量存储来存储最大的数

程序:


 1 #include <stdio.h>
2
3 int maxium(int a,int b,int c)
4 {
5 int max = 0;
6
7 max = a>b ? a:b;//三目运算符,两两相比较,max保存大的数
8 max = max>c ? max:c;//三目运算符,大的数与剩下的数作比较
9 return max;
10 }
11 void main()
12 {
13 int a = 0; //定义三个变量a、b、c来保存输入
14 int b = 0;
15 int c = 0;
16 int max = 0;//定义变量max来保存最大数
17 printf("请输入任意三个数:");
18 scanf("%d",&a);//输入三个数
19 scanf("%d",&b);
20 scanf("%d",&c);
21 max = maxium(a,b,c);//调用获取最大数
22 printf("三个数中最大的数是:%d\n",max);
23
24 }

改进:

求最大数的函数不必设三个输入参数,假设是10个数或者是更多的数来比较呢?难道输入参数也要设置为10个吗?比较明智的办法是求最大数的函数设置为两个输入参数,尽做两两比较,然后递归调用这个函数即可。


 1 #include <stdio.h>
2 /*
3 int maxium(int a,int b,int c)
4 {
5 int max = 0;
6
7 max = a>b ? a:b;//三目运算符,两两相比较,max保存大的数
8 max = max>c ? max:c;//三目运算符,大的数与下一个数作比较
9 return max;
10 }*/
11 int maxium(int a,int b)
12 {
13 int max = 0;
14 max = a>b ? a:b;
15 return max;
16 }
17 void main()
18 {
19 int a = 0; //定义三个变量a、b、c来保存输入
20 int b = 0;
21 int c = 0;
22 int max = 0;//定义变量max来保存最大数
23 printf("请输入任意三个数:");
24 scanf("%d",&a);//输入三个数
25 scanf("%d",&b);
26 scanf("%d",&c);
27 // max = maxium(a,b,c);//获取最大数
28 max = maxium(maxium(a,b),c);//获取最大数
29 printf("三个数中最大的数是:%d\n",max);
30
31 }

延伸:如果是更多的数呢?比如10个数?


 1 #include <stdio.h>
2
3 int maxium(int a,int b)
4 {
5 int max = 0;
6 max = a>b ? a:b;
7 return max;
8 }
9
10 void main()
11 {
12 int nInput[10] = {};//定义一个数组来存放10个数并且初始化
13 int max = 0;
14 printf("请输入任意10个数:");
15 for(int i=0;i<10;i++)
16 {
17 scanf("%d",&nInput[i]);
18 max = maxium(max,nInput[i]);//循环调用求最大数函数,将最大值存放在max里再参与下次比较
19 }
20 printf("10个数中最大的数是:%d\n",max);
21 }

由以上代码发现语法错误:数组初始化问题

int nInput[10] =
{};是肯定不对的

正确的初始化方法:

int nInput[10] = {0};

那么接下来有问题的是:max的初始值为0,让这10个数与从0开始一次比较,那假如这10个数都比0小呢?那输出的结果等于0.很显然,这是不行的,因为10个数中并没有0这个数。max的初始值应该为第一个数,但是怎样写才会简介呢?

C语言每日一题之No.1,码迷,mamicode.com

时间: 2024-12-24 13:45:18

C语言每日一题之No.1的相关文章

C语言每日一题之No.9

再做决定之前,我还是做好自己该做的.我不希望几年后会悔恨自己为什么在最该努力的时候不愿意吃苦.尊敬的女王陛下,请接题: 一.题目:有已按升序排好顺序的字符串a,编写程序将字符串s中的每个字符按升序的规则插到字符串a中,最后输出"abdefghjkmnptwy". 二.思路:既然是已经排好序的,就用二分法查找的思想 将字符串s中的每个字符依次作为key拿来和字符串a做比较并且插入 三.程序 1 #include <stdio.h> 2 #include <string.

C语言每日一题之No.3

题目:从键盘输入一个字符串,按照字符顺序从小到大进行排序,并要求删除重复字符.如输入"ad2f3adjfeainzzzv",则输出"23adefijnvz" 思路:先定义一个字符数组用来存储字符串 讲数字转化成字符(ASCII) 排序 进行遍历,删除重复字符 程序: C语言每日一题之No.3,布布扣,bubuko.com

C语言每日一题之No.2

题目:已知三个整型数8,12,6,按公式s=a+b*c计算,并显示结果 思路:定义三个整型变量a,b,c 定义一个变量s用来保存运算结果 输出 程序: 1 #include <stdio.h> 2 3 void main() 4 { 5 int a = 8; 6 int b = 12; 7 int c = 6; 8 int s = 0; 9 10 s = b*c ; //s用来保存b*c 11 s += a; //s=a+b*c 12 printf("a+b*c=%d\n"

C语言每日一题之No4.

这几天老大也没安排我什么项目,于是想正好趁着空补C.当然,是利用晚上加班时间,白天正常上班时间还是学习公司的平台. 今儿个突然弱弱的感觉到在公司补C是件很低级的事情,哪怕是在加班时间都会被喷,因为大家在关心Linux玩得顺溜不顺溜的情况下,我在补C,万恶的C.想想也是,这种最最基础的C语言只能自己挤出时间来补了,在公司最起码也得学点高端点的,比如Linux,如果作为一个软件开发人员,你不会Linux还搞毛线啊? 好吧,工作一天了,今日吐槽完毕,人生因吐槽而舒畅爽快 ,神一样的存在.此时此刻就是回

C语言每日一题之No.7

今天是正式第一天在现有的世界里与自己相处,你再也没有另一个世界可以躲避了.终于要自己面对自己了,一个人要真实的面对自己的灵魂总是痛苦的.从学校到社会的环境转换,现实与理想的冲突,个人价值观和社会价值观的矛盾,这些都很大程度的冲击着我,不行,我不可以被这些所俘虏失去自我,我得重新把自己给找回来.如果不重新学会和自己相处,那我又该以怎样的姿态活着?如果内心无法认可自己,那我活着有什么意义?虽然过程有点痛苦,可心里很踏实,因为自己没有被外界的评价所绑架,而是牢牢的和自己的灵魂紧密相拥.girl ,加油

C语言每日一题之No.8

正式面对自己第二天,突然一种强烈的要放弃的冲动,在害怕什么?害怕很难赶上步伐?害怕这样坚持到底是对还是错?估计是今天那个来了,所以身体激素有变化导致情绪起伏比较大比较神经质吧(☆_☆)~矮油,女人每个月总有这么几天的....晚上闺蜜打电话来,共同探讨了作为单身女性身在一线城市的生活,互相安慰互相关心,心里一下子就温暖了许多.总在这个时候,你会觉得,这个冷静的城市里你不是一个人在行走,还有另一颗心牵挂着你.嘿嘿,回来该学习还学习.现在不管坚持是对的还是错的,你都踏上了研发这条不归路,那就一条黑走到

C语言每日一题之No.5

总在想,但凡编程基础正常点,都不至于惨败到这个地步.也像大多数人毕业出来,接受任务,如果做得好还可以略有成就感,做得一般还有提升的空间,但至少不至于像我这样基本没基础的被鄙视得一塌糊涂,被外界持续的否定,直到你也开始觉得,你存在的意义何在?可是这又怎样呢?事实已经如此了,那就努力改善!没有假如,没有如果,没有任何人可以替你来努力.今天去看了赵星的微博,很励志.有一段话藉以共勉:人总要付出很大努力才会让别人觉得毫不费力,世上没有白挣的钱,没有白付出的辛苦,只有没下够的功夫和没坚持的勇气,而功夫下在

老男孩教育每日一题-第94天 -shell脚本知识点:对shell脚本进行加密

题目 用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好.但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等.同样,在shell脚本运行时会也泄露敏感信息.请问如何不影响脚本运行的前提下,对脚本进行加密 答案参考: 方法一:shc shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件.shc 安装yum -y install shc使用方法:shc -r -f script-name 注意:要有-r选项, -f 后

老男孩教育每日一题-2017年5月11-基础知识点: linux系统中监听端口概念是什么?

1.题目 老男孩教育每日一题-2017年5月11-基础知识点:linux系统中监听端口概念是什么? 2.参考答案 监听端口的概念涉及到网络概念与TCP状态集转化概念,可能比较复杂不便理解,可以按照下图简单进行理解? 将整个服务器操作系统比喻作为一个别墅 服务器上的每一个网卡比作是别墅中每间房间 服务器网卡上配置的IP地址比喻作为房间中每个人 而房间里面人的耳朵就好比是监听的端口 当默认采用监听0.0.0.0地址时,表示房间中的每个人都竖起耳朵等待别墅外面的人呼唤当别墅外面的用户向房间1的人呼喊时