A. c语言中用函数比较三个数的大小,并输出最大值,最小值以及最大值与最小值的差值
#include <iostream.h>
#include "math.h"
void func(int* in,int* ou)
{
int mi,ma;
mi=(in[0]>in[1]?in[1]:in[0]);
mi=(mi>in[2]?in[2]:mi);
ma=(in[0]>in[1]?in[0]:in[1]);
ma=(ma<in[2]?in[2]:ma);
ou[0]=mi;//最小值
ou[1]=ma;//最大值
ou[2]=ma-mi;//差
}
int main()
{
int a[3]={1,2,3},b[3];
func(a,b);
cout<<b[0]<<" "<<b[1]<<" "<<b[2]<<endl;
}
B. 如何用C语言实现2的n次方
以上各位都对,但有更简单的
直接将1左移n位就好了,效率也更高
int n= 10;
unsigned int x = 1<<n;
但要注意直接计算2的n次方很容易溢出,比如直接左移以及直接乘都要求小于32次方,还得是x声明为unsigned的前提下,否则最多能左移16位,超过之后就溢出了
如果要实现超过32次方,需要定义为更大的数据类型,或者直接用字符数组存储,实现大整数的运算
C. c语言中m=++i,n=j++什么意思
i的值为i+1,之后m=i 也可以解释为第一步,i的值自加1,之后,m的值等于i的值
n=j, 之后j的值j+1 也可以解释为第一步,先把j的值赋给n,之后j的值再自加1