C语言复习 - 第四章

//求方程根
#include <stdio.h>
#include <math.h>

int main()
{
    double a,b,c,disc,x1,x2,p,q;
    sacnf("%lf%lf%lf",&a,&b,&c);
    disc = b*b-4*a*c;
    if ( disc < 0 )
        printf("This equaiton hasn't real roots\n");
    else
        {
            p = -b/(2.0*a);
            q = sqrt(disc)/(2.0*a);
            x1 = p+q;
            x2 = p-q;
            printf("real roots:\nx1 = %7.2f\nx2 = %7.2f\n",x1,x2);
        }
    return 0;
}
//若a>b,a,b的值互换
if(a>b)
{
    t = a;
    a = b;
    b = t;
}

输入双精度实型数据,不能用%f格式声明,而应当用%lf格式声明;输出双精度实型数据,可以用%f,%lf或%m.nf,以指定输出的精度。

//输入3个数,a,b,c要求按由小到大的顺序输出
float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}

if语句的一般形式

if(表达式)语句1

[else 语句2]

三种形式

1、if(表达式)语句1

2、if(表达式)语句1 else 语句2

3、if(表达式) 语句1 else if (表达式2) 语句2 else if(表达式3) 语句3 ……else 语句n

关系运算符

<        <=        >        >=        ==        !=

前4种优先级大于后2种

关系运算符低于算术运算符,高于赋值运算符

逻辑运算符

&&        ||        !

优先级        ! > && > ||

条件运算符 - C语言中唯一一个三目运算符

表达式1?表达式2:表达式3        (表达式1成立,运算表达式2,否则运算表达式3)

//判断字符是否为大写字母,如果是,转换成小写字母
char ch;
scanf("%c",&ch);
ch = (ch >= 'A' && ch <= 'Z')?(ch+32):ch;
printf("%c\n",ch);

if的嵌套

if( )

        if( )        语句1

        else        语句2

else

        if( )         语句3

        else        语句4

switch - 多分支选择语句 

char grade;

scanf("%c",&grade);

printf("Your score: ");

switch(grade)

{       

        case 'A' : printf("85~100\n");break;

        case 'B' : printf("70~84\n");break;

        default : printg(" enter data error!\n");

}

break语句 - 使流程转到switch语句的末尾,否则若输入A,将从第一句进入,执行到末尾,输入B,从第二局进入,执行到末尾。

一般形式

switch ( 表达式)        

{

        case 常量1 :语句1

        case 常量2 :语句2

        ……

        case 常量n :语句n

        default :语句n+1

}

当整型表达式和其中一个常量表达式(标签)相同则进入。 

switch(表达式)中表达式其值的类型应为整数类型(包括字符型)

可以没用default标号;case只起标记的作用

如果各case子句中没有break语句,将持续输出。

 

//可用switch语句完成处理菜单命令
void action1(int,int),action2(int,int);
char ch;
int a = 15, b = 23;
ch = getchat();
switch(ch)
{
    case 'a':
    case 'A': action1(a,b);break;
    case 'b':
    case 'B': action2(a,b);break;
    default : putchar('\a');
}
//判断闰年
int year,leap;
printf("enter year: ");
scanf("%d",&year);
if(year%4==0)
{
    if(year%100==0)
    {
        if(year%400==0)
            leap = 1;
        else
            leap = 0;
    }
    else
        leap = 1;
}
else
    leap = 0;
if(leap)
    printf("%d is ",year);
else
    printf("%d is not ",year);
printf("a leap year\n");

C语言中没有逻辑类型,在c++中才引入的

if(x=0x12)条件语句为赋值语句,是一直成立的,注意赋值操作符“=”和相等操作符“==”的区别

int x;

scanf("%d",&x);

if(x>10)printf("1");

else if(x>20)printf("2");

else if(x>30)printf("3");

此时输入35,得到的输出为1

//按每行8个输出数据
void fun (int *w,int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        if(i%8 == 0)
            printf("\n");
        printf("%d ",w[i]);
    }
    printf("\n";
}

 在程序中else必须与if匹配,共同组成一条if - else语句,中间不能出现其他语句({ }包括的是属于if - else语句的,否则就会编译错误

break语句的功能是跳出正在执行的条件语句或循环语句

switch语句中可以根据需要选择是否使用break语句

switch后面不应该有分号 - 表达式需要在括号内,且表达式的类型应与case后的常量类型一致。

case和后面的常量表达式应该由空格隔开。

运算符优先级:!(非)>算术运算符>关系运算符>逻辑运算符>赋值运算符

其中逻辑运算符,&&>||

  • 17
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值