Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
if(num>500) cost=0.15; else if(num>300) cost=0.10; else if(num>100) cost=0.075; else if(num>50) cost=0.05; else cost=0; N num>500 N Y num>300 N num>100 N Y num>50 Y cost=0.1 cost=0.15 Y cost=0.075 cost=0.05 cost=0
if(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 …………………. else if(表达式n) 语句n else 语句n+1 N e1 N Y e2 Y e3 … Y s1 s2 s3 sn+1
e1 e1 Y N Y N e2 e2 e3 Y Y Y N N N s3 s2 s2 s4 s1 s1 s3 if(e1) if(e2) s1 else s2 else s3 if(e1) if(e2) s1 else s2 else if(e3) s3 else s4
e1 e1 N N Y Y e2 e2 Y Y N N e3 e3 s3 Y Y N N s1 s1 s2 s2 s3 if(e1) if(e2) s1 else if(e3) s2 else s3 没有if就没有else else总是与最近的尚未配对的if结合
三、switch语句 switch(ch) {csae 'A': printf("Good!\n"); break; case 'B': printf("Good!\n"); break; case 'C': printf("Pass\n"); break; case 'D': printf("Fail!\n"); break; } ch case ch=='C' ch=='D' ch=='A' ch=='B' Good Fail Pass
switch(ch) {csae 'A': case 'B': printf("Good!\n"); break; case 'C': printf("Pass\n"); break; case 'D': printf("Fail!\n"); break; } ch case ch=='C' ch=='D' ch=='A' ch=='B' Good Fail Pass
格式: switch (表达式) {case 常量表达式1:语句串1 case 常量表达式2:语句串2 ………… case 常量表达式n:语句串n default :语句串n+1 } 表达式只能是整型、字符型、枚举类型 各常量表达式中不能有相同的值 执行完某个分支后, 要用break语句终止switch语句的执行 不同的常量表达式可以执行相同的语句串
switch(ch) {csae 'A': case 'B': printf("Good!\n"); break; case 'C': printf("Pass\n"); break; case 'D': printf("Fail!\n"); break; } switch(ch) {csae A: case B: printf("Good!\n"); case C: printf("Pass!\n"); case D: printf("Fail!\n"); } switch(ch) {csae 'A' || 'B': printf("Good!\n"); case C: printf("Pass!\n"); case D: printf("Fail!\n"); } switch(ch) {csae 'A'<= ch<='B': printf("Good!\n"); case C: printf("Pass!\n"); case D: printf("Fail!\n"); }
int main( ) { int data1,data2; char op; printf("Type number operator number\n"); scanf("%d%c%d",&data1,&op,&data2); switch(op) {case '+': printf("%d+%d=%d\n", data1,op,data2,data1+data2); break; case '-': printf("%d-%d=%d\n", data1,op,data2,data1-data2); break; case '*': printf("%d %c%d=%d\n", data1,op,data2,data1*data2); break; case '/': if(0==data2) printf("Dividey by Zero!\n"); else printf("%d/%d=%d\n", data1,op,data2,data1/data2); break; default: printf("Unknow operator!\n"); } }
y a=0? b2-4ac=0? b2-4ac>0? 输出一个实根 • 求方程的根 开始 输入系数a、b、c N y 输出两个相等的实根 N y 计算并输出两个不同的实根 N 计算并输出两个虚根 结束
int main( ) {float a,b,c,p,q,disc; printf("Please enter a,b,c:"); scanf("%f,%f,%f",&a,&b,&c); printf("The Equation:"); if(fabs(a)<=1e-6) printf("has one roots:%6.2f\n",-c/b);
else {disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(fabs(disc))/(2*a); if(fabs(disc)<1e-6) printf("has two equal roots:%6.2f\n", p); else if(disc>1e-6) printf("has two unequal real roots: %6.2f and %6.2f\n",p+q,p-q); else {printf("has complex roots:\n"); printf("%6.2f+%6.2f i\n", p,q); printf("%6.2f-%6.2f i\n", p,q); } } }
int main( ) {int c,s; float p,w,d,f; printf("Input p,w,s:"); scanf("%f,%f,%d",&p,&w,&s); if (s>=3000) c=12; else c=s/250;
switch(c) {case 0: d=0; break; case 1: d=2; break; case 2: case 3: d=5; break; case 4: case 5: case 6: case 7: d=8; break; case 8: case 9: case 10: case 11:d=10; break; case 12:d=15;break; } f=p*w*s*(1-d/100.0); printf("freight=%15.4f\n",f); return 0; }