C语言基础篇

一、用条件运算符求两个数中的最大者

int Max2(int a,int b)
{
return  a>b?a:b;  //a>b为真,返回值为a,否则为b.
}

二、利用两个数中的最大者来求三个数中的最大者`

int Max3(int a,int b,int c)
{
 return Max2(Max2(a,b),c);  
}

三、如何判断一个素数

bool IsPrime(int n)
{   
 for(int i=2;i<n;i++)
{   assert(n!=1);  //assert :断言    
//(断言不是函数,是一个宏,可以精准定位文件某一行,在release下无效)在使用断言时要添加包含断言的头文件#include<assert.h>
   if(n%i==0)
    {
      return false;
    }
     return true;
}

素数:一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数。
四、求根

void Fun(int a,int b,int c) //本程序中要注意数据类型的强制转换,否则达不到所要求的精度。
{  float x1,x2;
   int d=b*b-4*a*c;
  if(a==0)
 { x1=x2=-c/(float)b;
 }
 else
 {
 if(d<0)  //如果d为float型,要注意与0的比较范围为(-0.000001~0.000001)
 //具体含义为:
 //if(a>=-0.000001&&a<=0.000001),如果这个if的条件为真,就代表a是等于0的。
 { printf("无根");
     return;
 }
 else
 {
    if(d==0)
  {
        x1=x2=-b/(float)(2*a);
         printf("%f,%f",x1,x2);
    }
    else
    {
  x1=(-b+sqrt((float)d))/(2*a);  //sqrt函数是用来求一个非负实数的平方根函数,使用时要包含头文件#include<math.h>
  x2=(-b-sqrt((float)d))/(2*a);
    printf("%f,%f",x1,x2);
    }
   }
 }
}

五、用switch语句实现多分支选择结构

void fun(char ch)
{  switch(ch)  //不能做switch的参数类型有:float,double 。**必须是整型**
 {case 'a':
  printf("90-100\n");
  break;//
 case 'b':
  printf("80-90\n");
  break;
 case'c':
  printf("70-80\n");
  break;
  case'd':
   printf("60分以下\n");
   break;
}

switch语句的执行过程:
1>先计算switch后边的表达式的值;
2>从第一个case开始判断,不匹配则跳到下一个case继续判断;
3>遇到break则跳出switch语句;
4>default一般是没有匹配项才执行的,一般是放在switch语句末尾。
在如下情况下,它会被执行: 1、没有匹配项的时候;
2、匹配项最后没有break语句,default跟在这个匹配项后面。
注意:1>每一个case常量必须互不相同,否则就会出现互相矛盾的现象。
2>一般情况下,在执行一个case子句后,应当用break语句使流程跳出switch结构,否则将会连续输出。
六、switch与if之间的不同之处
if:不管有多少次比较,都会一个一个进行比较。
switch:当比较次数大于等于四,就会被优化为一次比较。
七、逻辑运算符与优先次序
逻辑运算符
1.通过以下例题来进行深入学习
逻辑运算符
注意:在C语言中没有专门的真值和假值,认定非0为真,0为假。
八、关系运算符及优先次序
运算符

其中<、<=、>、>=这四种关系运算符优先级相同,==、!=这两种优先级相同,前四种的优先级高于后两种。

猜你喜欢

转载自blog.csdn.net/qq_43313035/article/details/83049138