C语言每日一题之No.1
鉴于在学校弱弱的接触过C,基本上很少编程,C语言基础太薄弱。刚好目前从事的是软件编程,难度可想而知。严重影响工作效率,已无法再拖下去了。为此,痛下决心恶补C语言。此前只停留在看书,光看好像也记不住,C这东西毕竟是练出来的,所以从今天开始,每日一道C语言题目,从题目入手来补知识漏洞。题目比较基础,如不堪入目,还请见谅。
1.题目:输入三个整数,输出最大的数
2.思路:定义三个变量用来存储输入的整数
比较三个变量的大小,找到最大的数
定义一个变量存储来存储最大的数
3.程序:
#include <stdio.h> int maxium(int a,int b,int c)
{
int max = ; max = a>b ? a:b;//三目运算符,两两相比较,max保存大的数
max = max>c ? max:c;//三目运算符,大的数与剩下的数作比较
return max;
}
void main()
{
int a = ; //定义三个变量a、b、c来保存输入
int b = ;
int c = ;
int max = ;//定义变量max来保存最大数
printf("请输入任意三个数:");
scanf("%d",&a);//输入三个数
scanf("%d",&b);
scanf("%d",&c);
max = maxium(a,b,c);//调用获取最大数
printf("三个数中最大的数是:%d\n",max); }
4.改进:
求最大数的函数不必设三个输入参数,假设是10个数或者是更多的数来比较呢?难道输入参数也要设置为10个吗?比较明智的办法是求最大数的函数设置为两个输入参数,尽做两两比较,然后递归调用这个函数即可。
#include <stdio.h>
/*
int maxium(int a,int b,int c)
{
int max = 0; max = a>b ? a:b;//三目运算符,两两相比较,max保存大的数
max = max>c ? max:c;//三目运算符,大的数与下一个数作比较
return max;
}*/
int maxium(int a,int b)
{
int max = ;
max = a>b ? a:b;
return max;
}
void main()
{
int a = ; //定义三个变量a、b、c来保存输入
int b = ;
int c = ;
int max = ;//定义变量max来保存最大数
printf("请输入任意三个数:");
scanf("%d",&a);//输入三个数
scanf("%d",&b);
scanf("%d",&c);
// max = maxium(a,b,c);//获取最大数
max = maxium(maxium(a,b),c);//获取最大数
printf("三个数中最大的数是:%d\n",max); }
5.延伸:如果是更多的数呢?比如10个数?
#include <stdio.h> int maxium(int a,int b)
{
int max = ;
max = a>b ? a:b;
return max;
} void main()
{
int nInput[] = {};//定义一个数组来存放10个数并且初始化
int max = ;
printf("请输入任意10个数:");
for(int i=;i<;i++)
{
scanf("%d",&nInput[i]);
max = maxium(max,nInput[i]);//循环调用求最大数函数,将最大值存放在max里再参与下次比较
}
printf("10个数中最大的数是:%d\n",max);
}
由以上代码发现语法错误:数组初始化问题
int nInput[10] = {};是肯定不对的
正确的初始化方法:
int nInput[10] = {0};
那么接下来有问题的是:max的初始值为0,让这10个数与从0开始一次比较,那假如这10个数都比0小呢?那输出的结果等于0.很显然,这是不行的,因为10个数中并没有0这个数。max的初始值应该为第一个数,但是如果在循环里把第一个数赋给max作为初始值,那么每次循环的时候max都被初始化,循环调用maxium(int a,int b)就失去了意义。到底怎样写才会简洁呢?
6.知识点:
数组初始化
printf()
C语言每日一题之No.1的更多相关文章
- C语言每日一题之No.9
再做决定之前,我还是做好自己该做的.我不希望几年后会悔恨自己为什么在最该努力的时候不愿意吃苦.尊敬的女王陛下,请接题: 一.题目:有已按升序排好顺序的字符串a,编写程序将字符串s中的每个字符按升序的规 ...
- C语言每日一题之No.8
正式面对自己第二天,突然一种强烈的要放弃的冲动,在害怕什么?害怕很难赶上步伐?害怕这样坚持到底是对还是错?估计是今天那个来了,所以身体激素有变化导致情绪起伏比较大比较神经质吧(☆_☆)~矮油,女人每个 ...
- C语言每日一题之No.4
这几天老大也没安排我什么项目,于是想正好趁着空补C.当然,是利用晚上加班时间,白天正常上班时间还是学习公司的平台. 今儿个突然弱弱的感觉到在公司补C是件很低级的事情,哪怕是在加班时间都会被喷,因为大家 ...
- C语言每日一题之No.3
几天下来,感慨学习要坚持下来真的是件很难的事,本来说了每天一题,可是毕竟这是个细活,需要用心雕琢,有时候真的不能当天拿下来>_<.虽然说只是一题,却涉及到很多小细节,慢慢的琢磨直至完全摸透 ...
- C语言每日一题之No.12
文件操作知识:如何将一个文件的内容读取到另一个文件里? fread函数和fwrite函数 1.函数功能 用来读写一个数据块. 2.一般调用形式 fread(buffer,count,siz ...
- C语言每日一题之No.7
今天是正式第一天在现有的世界里与自己相处,你再也没有另一个世界可以躲避了.终于要自己面对自己了,一个人要真实的面对自己的灵魂总是痛苦的.从学校到社会的环境转换,现实与理想的冲突,个人价值观和社会价值观 ...
- C语言每日一题之No.6
人总要战胜内心的懦弱的,我不能一直这么缩在里边.终究向自己发出了挑战,还是会伤心的时候,发愣的时候.如果可以,我也希望像盗梦空间的女主一直沉在两个人的梦里永远不要醒来.可是,我们谁又能抗拒时间呢?这雨 ...
- C语言每日一题之No.5
总在想,但凡编程基础正常点,都不至于惨败到这个地步.也像大多数人毕业出来,新鲜的第一份工作,如果做得好还可以略有成就感,做得一般还有提升的空间,但至少不至于像我这样基本没基础的被鄙视得一塌糊涂,被外界 ...
- C语言每日一题之No.2
题目:已知三个整型数8,12,6,按公式s=a+b*c计算,并显示结果 思路:定义三个整型变量a,b,c 定义一个变量s用来保存运算结果 输出 程序: #include <stdio.h> ...
随机推荐
- abap程序修改程序
*&———————————————————————**& Report ZHELI_CODE*&*&———————————————————————**&*&am ...
- css透明度的设置 (兼容所有浏览器)
一句话搞定透明背景! .transparent_class { filter:alpha(opacity=); -moz-opacity:0.5; -khtml-opacity: 0.5; opaci ...
- API中FileReader 接口事件
FileReader 接口包含了一套完整的事件模型,用于捕获读取文件时的状态onabort 中断onerror 出错onloadstart 开始onprogress ...
- No module named 'pkg_resources' 解决方法
不知什么原因pip3突然不好使了....下午apt-get install && pip3 install 了好多东西,具体什么原因也找不出个所以然. 执行pip3报错: Traceb ...
- 某种数列问题 (jx.cpp/c/pas) 1000MS 256MB
众所周知,chenzeyu97有无数的妹子(阿掉!>_<),而且他还有很多恶趣味的问题,继上次纠结于一排妹子的排法以后,今天他有非(chi)常(bao)认(cheng)真(zhe)去研究一 ...
- Codeforces Round #372 (Div. 2)
Codeforces Round #372 (Div. 2) C. Plus and Square Root 题意 一个游戏中,有一个数字\(x\),当前游戏等级为\(k\),有两种操作: '+'按钮 ...
- Java——jdk1.5新特性
/* * 可变参数:--一个方法的参数个数不固定. * 特点: * 只能出现在参数列表的最后. * 调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参 ...
- 论文阅读之:PRIORITIZED EXPERIENCE REPLAY
PRIORITIZED EXPERIENCE REPLAY ICLR 2016 经验回放使得 online reinforcement learning agent 能够记住并且回放过去的经验.在先前 ...
- FS拓展设置
一.集群测试说明: 1.该测试的主要目的是:让两个注册在不同FS Server上的账号彼此双方通话. 2.测试工具:eyeBeam .LinPhone 3.FS架构图: 上图中两台FS的分机状况如下: ...
- combobox select .change onSelect事件触发
我现在要完成的功能是:有两个下拉框,当地一个下拉框选择了第一个选项时,第二个下拉框不可用,否则就可用. 用了jQuery easyUI提供的onSelect方法.如下:js文件:$('#select1 ...