![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C和指针
叉车小王子
这个作者很懒,什么都没留下…
展开
-
在一个未知大小的int型数组中找到数组里面第二大的整数
论如何在一个未知的数组中找到第二大的数,一个简单粗暴的方法就是在找到最大的元素了再在寻找老二的函数中嵌套老二要比老大小的条件。int FindMax(int a[], int b){ int num, i; num = 0; for( i = 0 ; i < b; i++ ) if(a[i] > num) num = a[i]; return num;}上图...原创 2019-03-12 17:03:24 · 455 阅读 · 0 评论 -
如何在不运用循环和乘法运算的前提下计算2的n次幂
解题思想我们知道一个数乘以二等于这个数与自己相加,所以我们就可以用递归算法将这个数一直相加,加到2的0次方(1)。所以接下来就是解决递归函数的书写问题,要实现递归算法,至少需要由递归函数和主函数组成。代码功能实现int digui(int n){ if( n == 0 ) return 1; else return ( digui(n-1) + digui(n-1) );}...原创 2019-03-17 12:29:33 · 819 阅读 · 0 评论 -
利用数学公式求解一个正整数的平方根
当大家需要在C语言编程中实现求解一个数的平方根的时候,大家最容易想到的方法是加载<math.h>头文件,利用这个函数库中的sqrt()函数来得出结果。那么有没有可能不调用库函数就能计算平方根呢?其实我们可以运用一些数学知识,我们可以将数学的运算哦,我们可以通过编程计算,省去复杂的计算过程。#include<stdio.h>#include<stdlib.h&g...原创 2019-03-17 15:12:15 · 1685 阅读 · 0 评论 -
输出1到100之间的所有质数
写着类型的函数,每个人有每个人的思路,写出来的代码也相应的不一样,关键是要看你的思维想得够不够全面,也可以借助测试的反馈改进。下面的我写的程序:#include<stdio.h>/***打印1~100之间的所有质数*/void main(void){ int i, j, flag; flag = 0; for( i = 2; i <= 100; i++ ...原创 2019-03-17 16:09:16 · 3983 阅读 · 0 评论 -
volatile关键字的解读
我在一次应聘笔试时遇到一道题,问:你是否在项目开发中有用到volatile关键字,如果有那又是什么作用?其实我只是在之前看过书上写这是用于告诉编译器该变量在编译过程中需要进行优化。这感觉上听起来不太清楚明了,我不懂其中道理,什么优化啊?然后我看了书,书里简单说了一下,还能理解,就是一个变量它的值可能会发生变化,若用以写逻辑判断表达式,条件表达式中使用了这个变量,但它执行部分的代码是一样的,然...原创 2019-03-31 18:11:06 · 163 阅读 · 0 评论 -
奇偶校验
#include<stdio.h>int even_parity( int value, int bits){ int parity = 0; /* //计算值中位为1的个数 */ while( bits > 0 ) { parity += value & 1; value >>= 1; bits -=1; } /* /...原创 2019-03-28 11:37:48 · 763 阅读 · 0 评论 -
C语言函数参数传递讲解
初学者只知道程序由主函数和模块的功能函数组成,在调用函数时把实参的值带入被调用函数的形参中进行计算,但这里有一个陷阱,就是函数参数的传递实际上是一个拷贝值的传递。下面举例说明:void swap( int x, int y ){ int temp; temp = x; x = y; y = temp;}很多人第一时间就想这就是交换两个数的值啊,但这并不是这样子,除非交换的两个值...原创 2019-03-28 11:52:46 · 202 阅读 · 0 评论