第四章 选择结构程序设计

简介: 第四章 选择结构程序设计

C语言有两种选择语句:(1)if语句,实现两个分支的选择结构

(2)Switch语句,实现多分支的选择结构。

1.求ax^2+bx+c=0方程的解。

#include<stdio.h>
#include<math.h>
int main(){
    double a,b,c,disc,x1,x2,realpart,imagpart;
    scanf("%lf,%lf,%lf",&a,&b,&c);
    printf("The equation");
    if(fabs(a)<=1e-6)
      printf("is not a quadractic\n");
      else{
          disc=b*b-4*a*c;
          if(fabs(disc)<=1e-6)
             printf("has two equal roots:%8.4f\n",-b/));
             else
             if(disc>1e-6){
                 x1=(-b+sqrt(disc))/(2*a);
                 x2=(-b-sqrt(disc))/(2*a);
                 printf("has distinct real roots:%8.4fand %8.4f\n",x1,x2);             
             }   
             else{
                 realpart=-b/(2*a);
                 imagpart=sqrt(-disc)/(2*a);
                 printf("has complex roots:\n");
                 printf("%8.4f+%8.4fi\n",realpart,imagpart);
                 printf("%8.4f-%8.4fi\n",realpart,imagpart);             
             }   
      }
      return 0;
}

2.求一个一元二次方程组的解:

#include<stdio.h>
#include<math.h>
int main(void){
    double a,b,c,d;
    printf("请输入一元二次方程的三个系数:");
    scanf("%lf%lf%lf",&a,&b,&c);
    if(fabs(a-0)<=1e-6){
        printf("输入有误,程序结束运行\n");
        return 0;    
    }
    d=b*b-4*a*c;
    if(d<0)
       printf("此方程无实数根\n");
    else if(fabs(d)<=1e-6)
       printf("此方程的根为%lf\n",-b/(2*a));
    else
       printf("此方程的两个根为%lf,%lf\n",(-b+sqrt(d))/(2*a),(-b+sqrt(d))/(2*a));
    return 0;
}

3.switch语句:电梯程序:

break:结束一个Switch语句的运行。

#include<stdio.h>
int main(void){
    printf("请输入所要到达的楼层:");
    int a;
    scanf("%d",&a);
    switch(a){
        default:
           printf("没有这个楼层\n");
           break;
        case1:
           printf("上一楼\n");
           break;
        case2:
            printf("上二楼\n");
            break;
         case3:
            printf("上三楼\n");
            break;                            
    }
    return 0;
}

4.Switch语句:电梯程序:

break:结束一个电梯程序的运行。

#include<stdio.h>
int main(void){
    printf("请选择要到达的楼层:");
    int a;
    scanf("%d",&a);
    switch(a){
        default:
            printf("没有这个楼层\n");
        break;
        case1:
            printf("上一楼\n");
            break;
        case2:
            printf("上二楼\n");
            break;
        case3:
            printf("上三楼\n");       
            break;                                     
    }
    return 0;
}

5.大写字母加上32=对应小写字母

#include<stdio.h>
#define DAXIE 1
void f1(void);
void f2(void);
void f3(void);
int main(void)
{
    f3();
    return 0;
}
void f1(void){
    char ch;
    while((ch=getchar())!='\n')
    {
        #if 1
            if(ch>='A'&&ch<='Z')
            ch+=32;
        #else
            if(ch>='a'&&ch<='z')
            ch-=32;
        #endif
            putchar(ch);                        
    }
}
void f2(void){
   char ch;
    while((ch=getchar())!='\n')
    {
        #if 1
            if(ch>='A'&&ch<='Z')
            ch+=32;
        #else
            if(ch>='a'&&ch<='z')
            ch-=32;
        #endif
            putchar(ch);                        
    }
}
void f3(void){
   char ch;
    while((ch=getchar())!='\n')
    {
        #if 1
            if(ch>='A'&&ch<='Z')
            ch+=32;
        #else
            if(ch>='a'&&ch<='z')
            ch-=32;
        #endif
            putchar(ch);                        
    }
}

重难点提要:

1.三种循环结构:

for(); while(); do-while()三种

for循环当中必须是两个分号

do-while循环至少执行一次循环

2.break和continue的差别

break:看到break跳出整个一层循环

continue:结束本次循环,循环体内剩下的语句不再执行,跳到循环开始,判断循环条件,进行新一轮的循环。

3.嵌套循环

循环里面有循环

4.取余的注意(负数取余)

#include<stdio.h>
int main(){
    int a=-10,b=-6;
    printf("%d",a%b);
    return 0;
}          //结果是-4

5.case可以嵌套写,表示多个条件一个操作

case1:case2:case3:printf("11111");


相关文章
|
2天前
|
云安全 人工智能 算法
以“AI对抗AI”,阿里云验证码进入2.0时代
三层立体防护,用大模型打赢人机攻防战
1294 3
|
3天前
|
机器学习/深度学习 安全 API
MAI-UI 开源:通用 GUI 智能体基座登顶 SOTA!
MAI-UI是通义实验室推出的全尺寸GUI智能体基座模型,原生集成用户交互、MCP工具调用与端云协同能力。支持跨App操作、模糊语义理解与主动提问澄清,通过大规模在线强化学习实现复杂任务自动化,在出行、办公等高频场景中表现卓越,已登顶ScreenSpot-Pro、MobileWorld等多项SOTA评测。
588 3
|
3天前
|
人工智能 Rust 运维
这个神器让你白嫖ClaudeOpus 4.5,Gemini 3!还能接Claude Code等任意平台
加我进AI讨论学习群,公众号右下角“联系方式”文末有老金的 开源知识库地址·全免费
|
10天前
|
编解码 人工智能 自然语言处理
⚽阿里云百炼通义万相 2.6 视频生成玩法手册
通义万相Wan 2.6是全球首个支持角色扮演的AI视频生成模型,可基于参考视频形象与音色生成多角色合拍、多镜头叙事的15秒长视频,实现声画同步、智能分镜,适用于影视创作、营销展示等场景。
718 4
|
3天前
|
存储 弹性计算 安全
阿里云服务器4核8G收费标准和活动价格参考:u2a实例898.20元起,计算型c9a3459.05元起
现在租用阿里云服务器4核8G价格是多少?具体价格及配置详情如下:云服务器ECS通用算力型u2a实例,配备4核8G配置、1M带宽及40G ESSD云盘(作为系统盘),其活动价格为898.20元/1年起;此外,ECS计算型c9a实例4核8G配置搭配20G ESSD云盘,活动价格为3459.05元/1年起。在阿里云的当前活动中,4核8G云服务器提供了多种实例规格供用户选择,不同实例规格及带宽的组合将带来不同的优惠价格。本文为大家解析阿里云服务器4核8G配置的实例规格收费标准与最新活动价格情况,以供参考。
245 150
|
3天前
|
人工智能 自然语言处理 安全
阿里云万小智AI建站:基础版、标准版、企业版主要功能及价格对比和选择参考
阿里云万小智 AI 建站是一款基于 AI 驱动的自助建站产品,无需代码基础,通过可视化拖拽与 AI 对话即可快速构建高性能、多语言、安全合规的网站。系统深度集成阿里云 ECS、RDS、OSS、CDN、SLB 与 Web 应用防火墙,保障高可用性、数据安全与全球访问速度。其提供多个版本,精准匹配从个人工作室到中大型企业的差异化需求。
238 167