C 程序设计 第 4 章 选择结构程序设计

  • Upload
    tyra

  • View
    153

  • Download
    3

Embed Size (px)

DESCRIPTION

C 程序设计 第 4 章 选择结构程序设计. 主讲教师: 鲁 萍 西安建筑科技大学 理学院. 第 4 章 选择结构程序设计. 为什么要用选择结构 ? 实现选择结构的语句 if … .else … switch 如何表示 “ 判断条件 ” ? 关系 运算符及表达式 逻辑 运算符及表达式 条件运算符及表达式 选择结构综合举例. 习 题. 小 结. 游 戏. 选择结构. 条件. 成立. 不成立. A 事情. B 事情. 条件成立 A 事情. 如果 b 2 -4ac≥0 方程有实根 - PowerPoint PPT Presentation

Citation preview

  • C

    4

  • 4 if.elseswitch

  • b2-4ac0 70 0 7 105070 20 50ifelse AB

  • #includeint main(){ float a,b,c,disc,x1,x2,p,q; printf("a b c "); scanf("%lf%lf%lf",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2.0*a); q=sqrt(disc)/(2.0*a); x1=p+q; x2=p-q; printf("x1=%7.2f \nx2=%7.2f\n", x1,x2); return 0;}A0307: ax2+bx+c=0 b2-4ac>0 a, b, c

  • 4.1 int main(){ float a,b,c,disc,x1,x2,p,q; scanf("%lf%lf%lf",&a,&b,&c); disc=b*b-4*a*c; if (disc>=0) {

    } else printf("\n"); return 0;}A0401: ax2+bx+c=0 a, b, c ""p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q; x2=p-q; printf("%f ,%f", x1,x2);

  • A0402 [4.3]abc a b c 5 2 3 2 3 5 if (a>b) ab a=min{a, b} if (a>c) ac a=min{a, b, c} if (b>c) bc bc ab t=a; a=b; b=t;

  • A0402 [4.3]abcab t=a; a=b; b=t; if (a>b) ab if (a>c) ac if (b>c) bc int main(){ int a,b,c,t; scanf("%d,%d,%d",&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; } printf(" %d,%d,%d\n",a,b,c); return 0;}

  • 4.2 if if 1 0234 {}5) if

  • ifelseif~else if() 1 else 2 1elseif2if

    if (a>b) max=a; else max=b;

  • 1 if(x>=0) if(x>0) y=1; else y=0; else y=-1;ifelse1.2.3. if5.32if(x0) y=1; else y=0; 4y=0; if(x>=0) if(x>0) y=1;else y=-1; x=0 x=-5 ifelse

  • 70 0 7 105070 20 50if (age>=70) ticket=0if (age
  • if~else if~ 70 0 7 105070 20 50if (age>=70) ticket=0else if (age
  • if~else if~int main(){ int age, ticket; scanf(%d,&age); if (age>=70) ticket=0; else if (age
  • if~else if~1 if(1) 1else if (2) 2 else if (3) 3 else if (4) 4 else if (n) n else n+1

  • 1 if(x>=0) if(x>0) y=1; else y=0; else y=-1;5.32if(x
  • ,main(){ int i; printf("Input 1- 7: "); scanf("%d",&i); if (i==1) printf ( "Today is Monday!\n"); else if (i==2) printf ("Today is Tuesday!\n"); else if (i==3) printf ("Today is Wednesday !\n"); else if (i==4) printf( "Today is Thursday!\n"); else if (i==5) printf( "Today is Friday!\n"); else if (i==6) printf( "Today is Saturday!\n"); else printf( "Today is Sunday!\n");}main(){ int i; printf( "Input 1- 7: "); scanf("%d",&i); switch(i){ case 1: printf( "Today is Monday!"); case 2: printf( "Today is Tuesday!"); case 3: printf( "Today is Wednesday !"); case 4: printf( "Today is Thursday!"); case 5: printf( "Today is Friday!"); case 6: printf( "Today is Saturday!"); default: printf( "Today is Sunday!"); }}

  • 4.7 switch1switch () { case 11 case 22 ...... case n default n+1 } 21 ==i i i+1n+12 != default n+1

  • A0405,main(){ int i; printf( "Input 1- 7: "); scanf("%d",&i); switch(i){ case 1: printf( "Today is Monday!"); case 2: printf( "Today is Tuesday!"); case 3: printf( "Today is Wednesday !"); case 4: printf( "Today is Thursday!"); case 5: printf( "Today is Friday!"); case 6: printf( "Today is Saturday!"); default: printf( "Today is Sunday!"); }}breakbreakbreakbreakbreakbreak

    Input 1- 7: 4Today is Thursday!Today is Friday!Today is Saturday!Today is Sunday! breakswitch

  • switch 31intchar case 3+4/* */ case x+y /* int x=3,y=4;*/2case: case 10: case 9: printf("grade=A\n"); break;3default4case{}

  • A0406:scorescore90A80score
  • 4.7 switchvoid main(){ int score; printf("Input a score(0~100): "); scanf("%d", &score); /* 10 */ switch (score/10) { case 10: case 9: printf("grade=A\n"); break; case 8: printf("grade=B\n"); break; case 7: printf("grade=C\n"); break; case 6: printf("grade=D\n"); break; case 5: case 4: case 3: case 2: case 1: case 0: printf("grade=E\n"); break; default: printf("The score is out of range!\n"); } }

  • switchA0407: 2 12234switch5

  • A0407: void main(){ int a,b,fun,result; printf("Input two numbers a and b like 1,2: "); scanf("%d,%d", &a,&b); printf("1 a+b\n 2 a-b\n 3 a*b\n 4 a/b\n "); printf("please choose 1-4: ");scanf("%d",&fun); switch (fun) { case 1: result=a+b; break; case 2: result=a-b; break; case 3: result=a*b; break; case 4: result=a/b; break; default: printf("The score is out of range!\n"); } printf("result=%d\n",result);} printf("1 a+b\n "); printf("2 a-b\n "); printf("3 a*b\n "); printf("4 a/b\n ");

  • 4.3 1)2

  • 3 01 printf("result=%d " , 2>1);4> > int x=2,y=3,z; z=3-1>=x+14>5>2>1:z=1:f=0:z=2result=1

  • 1: #includemain(){ int a,b; a=10= =53; printf("%d,%d\n",a,b);}: 0111

  • 4.4 ""AB0"""" 00.0'\0'NULL1 && || ! () () ()2 A && B : AB"""""" A || B AB"""""" ! A A""""A""""x=5 (x5) "" 6 && 3

  • 301 4 &&|| f=!(3>4) 1 5 ! &&||

  • (1) 0
  • 1a&&b&&c: 002a||b||c: 11

  • 1. x,y,z;x=y=z=0;++x||++y&&++z;z( ) A30 B01 C20 D112. int a=3,b=4,c=5;!(a>b)&&!c||b( ) A0 B2 C1 D53. int a=23,b=25,c=12;c=c+b= =ac( ) A23 B25 C0 D14int a=10,b=3,c=9;1( ) A) !(ac C) !a>b || !b>c D) a+b&&(b>c)

  • if A0404 A0503ifxy 1if 2ifelse 3ifelse if

  • ifmain(){ float x,y; printf("x=?"); scanf("%f",&x); if(x=10) y=3*x+11; printf("%.2f",y);}

  • ifelsemain(){ float x,y; printf("x=?"); scanf("%f",&x); if(x=1 if (x=1 && x=10 printf("%.2f",y);}

  • ifelse ifmain(){ float x,y; printf("x=?"); scanf("%f",&x); if(x
  • 4.5 1 123 32 1 0"2" 0"3"1: if(a>b) m=a; else m=b; 2 xa: b x0ab m=(a>b?a:b);

  • 4.5 [] main(){ char ch; printf("Input a character: "); scanf("%c",&ch); ch= (ch>=A&&ch
  • 4.8 A0408 ax2+bx+c=0a0disc=b2-4ac=0 x1=x2=-b/(2a) disc=b2-4ac>0 x1=(-b+sqrt(disc))/(2a) x2=(-b-sqrt(disc))/(2a) disc=b2-4ac
  • 4.8 disc=b*b-4*a*c; if (disc==0) printf("x1=x2=%f\n", -b/(2*a)); else /* disc!=0*/ { if (disc>0) /* disc>0*/ { x1=(-b+sqrt(disc))/(2*a);/**/ x2=(-b-sqrt(disc))/(2*a); printf("x1=%f, x2=%f\n", x1, x2); } else /* disc
  • 4.8 A0408ax2+bx+c=0a0disc=b2-4ac=0 x1=x2=-b/(2a) disc=b2-4ac>0 x1=(-b+sqrt(disc))/(2a) x2=(-b-sqrt(disc))/(2a) disc=b2-4ac
  • disc=b*b-4*a*c; /*float*/ if (disc==0) printf("x1=x2=%f\n", -b/(2*a)); else /* disc!=0*/ { if (disc>0) /* disc>0*/ { x1=(-b+sqrt(disc))/(2*a);/**/ x2=(-b-sqrt(disc))/(2*a); printf("x1=%f, x2=%f\n", x1, x2); } else /* disc
  • ----if if ( ) 1 else 2 if (1) 1else if (2) 2 else if (3) 3 else if (n) n else n+1

  • > < >=
  • B0401B0402(4.12) 4(2,2) (-2,2) (-2,-2) (2,-2)1410mB0403(AZ)B0404 ASCII ASCII ASCII

  • B0405 1A0502 : 0-N C0401 520123C0402 0-100

  • #include#include#include#define N 100void main(){ int a,b,c,ans; srand(time(0)); /*, */ a=rand()%N; /*n0~N*/ b=rand()%N; c=a+b; printf("%d+%d=",a,b); scanf("%d",&ans); if(ans==c) printf("right!\n"); else { printf("wrong!\n"); printf("%d+%d=%d",a,b,c); } system("PAUSE");}A0502 : 0-N

  • IfA0405 A0504A0504ASCIIASCIIASCII#include #include void main(){ char c1,c2; printf("Input a char: "); c1=getchar(); printf("%c %d\n",c1,c1); if (c1>='A' && c1='a' && c1