鉴于在学校弱弱的接触过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的更多相关文章

  1. C语言每日一题之No.9

    再做决定之前,我还是做好自己该做的.我不希望几年后会悔恨自己为什么在最该努力的时候不愿意吃苦.尊敬的女王陛下,请接题: 一.题目:有已按升序排好顺序的字符串a,编写程序将字符串s中的每个字符按升序的规 ...

  2. C语言每日一题之No.8

    正式面对自己第二天,突然一种强烈的要放弃的冲动,在害怕什么?害怕很难赶上步伐?害怕这样坚持到底是对还是错?估计是今天那个来了,所以身体激素有变化导致情绪起伏比较大比较神经质吧(☆_☆)~矮油,女人每个 ...

  3. C语言每日一题之No.4

    这几天老大也没安排我什么项目,于是想正好趁着空补C.当然,是利用晚上加班时间,白天正常上班时间还是学习公司的平台. 今儿个突然弱弱的感觉到在公司补C是件很低级的事情,哪怕是在加班时间都会被喷,因为大家 ...

  4. C语言每日一题之No.3

    几天下来,感慨学习要坚持下来真的是件很难的事,本来说了每天一题,可是毕竟这是个细活,需要用心雕琢,有时候真的不能当天拿下来>_<.虽然说只是一题,却涉及到很多小细节,慢慢的琢磨直至完全摸透 ...

  5. C语言每日一题之No.12

    文件操作知识:如何将一个文件的内容读取到另一个文件里? fread函数和fwrite函数   1.函数功能   用来读写一个数据块. 2.一般调用形式   fread(buffer,count,siz ...

  6. C语言每日一题之No.7

    今天是正式第一天在现有的世界里与自己相处,你再也没有另一个世界可以躲避了.终于要自己面对自己了,一个人要真实的面对自己的灵魂总是痛苦的.从学校到社会的环境转换,现实与理想的冲突,个人价值观和社会价值观 ...

  7. C语言每日一题之No.6

    人总要战胜内心的懦弱的,我不能一直这么缩在里边.终究向自己发出了挑战,还是会伤心的时候,发愣的时候.如果可以,我也希望像盗梦空间的女主一直沉在两个人的梦里永远不要醒来.可是,我们谁又能抗拒时间呢?这雨 ...

  8. C语言每日一题之No.5

    总在想,但凡编程基础正常点,都不至于惨败到这个地步.也像大多数人毕业出来,新鲜的第一份工作,如果做得好还可以略有成就感,做得一般还有提升的空间,但至少不至于像我这样基本没基础的被鄙视得一塌糊涂,被外界 ...

  9. C语言每日一题之No.2

    题目:已知三个整型数8,12,6,按公式s=a+b*c计算,并显示结果 思路:定义三个整型变量a,b,c 定义一个变量s用来保存运算结果 输出 程序: #include <stdio.h> ...

随机推荐

  1. Codeforces Round #303 (Div. 2) B 水 贪心

    B. Equidistant String time limit per test 1 second memory limit per test 256 megabytes input standar ...

  2. leetcode 124. Binary Tree Maximum Path Sum ----- java

    Given a binary tree, find the maximum path sum. For this problem, a path is defined as any sequence ...

  3. Mysql存储日期类型用int、timestamp还是datetime?

    通常存储时间用datetime类型,现在很多系统也用int存储时间,它们有什么区别?个人更喜欢使用int这样对于日期计算时比较好哦,下面我们一起来看到底那种会好些. int ().4个字节存储,INT ...

  4. hdu5438(2015长春赛区网络赛1002)拓扑序+DFS

    题意:给出一张无向图,每个节点有各自的权值,问在点数为奇数的圈中的点的权值总和是多少. 通过拓扑序的做法标记出所有非圈上的点,做法就是加每条边的时候将两点的入度都加一,然后将所有度数为1的点入队,删去 ...

  5. python课程

    课程大纲 一.语言基础(5周) 数据类型 流程控制 模块 函数.迭代器.装饰器 递归.迭代.反射 面向对象编程 模拟人生游戏开发 二.网络编程(4周) Socket c/s编程.Twisted网络框架 ...

  6. 论文笔记之:Active Object Localization with Deep Reinforcement Learning

    Active Object Localization with Deep Reinforcement Learning ICCV 2015 最近Deep Reinforcement Learning算 ...

  7. JSBinding + SharpKit / 常见问题

    运行时出现: Return a "System.Xml.XmlIteratorNodeList" to JS failed. Did you forget to export th ...

  8. CUDA学习笔记(二)【转】

    来源:http://luofl1992.is-programmer.com/posts/38847.html 编程语言的特点是要实践,实践多了才有经验.很多东西书本上讲得不慎清楚,不妨自己用代码实现一 ...

  9. C#中有关string和byte[]转换的问题

    byte[] byteArray = System.Text.Encoding.Default.GetBytes( str ); 怎么样,够简单吧? 反过来也是一样,把byte[]转成string: ...

  10. 用CorelDRAW勾画对象轮廓图的方法

    轮廓图效果是利用渐变的步数来使图形产生渐变效果,与调和效果相似.两者的区别在于图形数不同,调和效果作用于两个或两个以上的图形,轮廓图只作用于一个图形.本教程将详解CorelDRAW中如何勾画对象轮廓图 ...