
1.条件处理的概念
哪些学生能够被哪个大学录取,是由填报志愿和高考分数决定的。
在使用scanf()函数调用前,也要使用#include命令包含stdio.h。
在C语言中就是用if条件语句和switch开关语句来实现。
2.条件语句格式
if ( <表达式> ) <语句1> [ else <语句2> ]
3.条件语句执行过程
4.格式举例:
(1) if(x!=-1) c++;
(2) if(x%2) s1+=x; else s2+=x;
(3) if(grade>=60 && grade<=100) printf("Pass!\n");
(4) if(x*x+y*y==z*z) {c++; w=x+y+z;}
(5) if(x>=0) {y=3*x-1; z=sqrt(x)+2;} else {y=6; z=y*pow(y,4);}
(6) if(x=3) printf("%d ",x); else printf("%d ",x*x);
5.if语句的嵌套结构
if ( 表达式1 ) 语句1
else if ( 表达式2 ) 语句2
else 语句3
int x,y;
scanf("%d",&x); //-3 3 6
if(x<0) y=2*x+1;
else if(x<5) y=x*x-2;
else y=4*(x+3);
printf("y=%d",y); //y=-5 y=7 y=36
6.含有if语句的程序分析
程序1:
#include<stdio.h>
void main()
{
int x,y;
printf("从键盘输入一个整数:");
scanf("%d",&x);
if(x<0) y=2*x-1;
else y=7*x+4;
printf("x=%d, y=%d\n", x,y);
}
输入一个整数5,则输出y的值为39,输入一个整数-5,则输出y的值为-11。
程序2:
#include<stdio.h&>
void main()
{
int a,b,c,temp;
printf("输入三个整数: ");
scanf("%d %d %d",&a,&b,&c);
if(a<b) {temp=a; a=b; b=temp;}
if(a<b) {temp=a; a=b; b=temp;}
if(a<c) {temp=a; a=c; c=temp;}
if(b<c) {temp=b; b=c; c=temp;}
printf("%d %d %d\n",a,b,c); //a≥b≥c
}
使用if语句的编程举例
编写一个程序,求出一元二次方程ax2+bx+c=0的实数根。
<strong分析:一元二次方程的实数根为 ,其中a≠0,b2-4ac≥0。对a==0和b2-4ac<0的情况做特殊处理,当满足a≠0,b2-4ac≥0要求时,再利用计算公式分别求出x1和x2两个实根的值。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main()
{
double a,b,c,d,x1,x2;
printf("输入方程的二次项系数、一次项系数和常数项:");
scanf("%Lf %Lf %Lf",&a,&b,&c);
if(a==0.0) {
printf("此方程不是二次方程!\n");
exit(1); //中止程序运行
}
d=b*b-4*a*c;
if(d<0.0) {
printf("此方程没有实数根!\n");
exit(1); //中止程序运行
}
if(d==0.0)
x1=x2=-b/(2*a);
else {
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
}
printf("此方程的两个根为:%Lf和%Lf\n",x1,x2);
}