热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

05dayC语言程序条件结构

一、主要的语句类型

 

05dayC语言程序条件结构

二、3种控制结构

结构化程序设计提供了3种控制结构,分别是顺序结构、分支结构和循环结构。
05dayC语言程序条件结构

1、取三个数中的最小数

用三元运算符?:

#include 

int main()
{
        int x,y,z;
    int i,j,n;
    scanf("%d %d %d",&x,&y,&z);
        i=(xx:y;
    j=(ii:z;
    printf("%d",j);
    return 0;
}        

 

三元运算符 m=x?y:z; 先运算x,如果x正确,则输出y,否则输出z

 2、双分支选择结构

将输入的三个数按照从小到大的顺序输出。

#include 
/*
输入 3 个整数 x、y 以及 z,请把这三个数从小到大输出。
*/
int main()
{
    int x,y,z;
    int i,j,n;
    scanf("%d %d %d",&x,&y,&z);
    if(x>y) 
    {
        i=x; 
        x=y;
        y=i;
    }
    if(x>z)
    {
        j=x;
        x=z;
        z=j;
    }
    if(y>z)
    {
        n=y;
        y=z;
        z=n;    
    }
    printf("%d<%d<%d",x,y,z);
        return 0;
}

 

3、多分支选择结构

判断输入的字符是数字、大写字母、小写字母或其他字符。

#include 

int main()
{
    char ch;
    scanf("%c",&ch);
    if('0'<=ch && ch<='9')
        printf("输入的是数字");
    else if('A'<=ch && ch<='Z')
        printf("输入的是大写字母");
    else if('a'<=ch && ch<='z') 
        printf("输入的是小写字母");
    else printf("输入的是其他字符"); 
    return 0;
}

 

三、switch语句

switch语句中的“表达式”和case后面的“常量表达式”的结果值的类型应该一致。其类型可以是除实型以外的任何类型(如整型、字符型、枚举类型)。
• 每一个case后的常量表达式的值必须互不相同。
• 执行完一个case后面的语句后,流程控制到下一个case继续执行。因此,多个case可共用一组语句。

1、break语句

终止switch语句的执行。为了执行完某个分支后跳出switch结构,应在其后加上break语句。

2、default语句

当所有case常量表达式与switch后表达式的值都不匹配时,default语句被执行,实际上,default语句也不是必须的,当default语句省略时,表示“缺省情况下什么也不做”。
default语句并不一定放在switch结构的最后,default语句和各个case语句的顺序完全可互换而不影响结果,当default语句不在switch结构的最后时,不要忘记使用break。

四、课后作业

#include 

/*
    如果员工满足下列条件之一,公司就为他们投保。 
    员工已婚 
    员工为 30 岁以上的未婚男性 
    员工为 25 岁以上的未婚女性 
    如果以上条件一个也不满足,则公司不投保。 
    根据用户输入员工的婚姻状态、性别和年龄,判定该员工是否已投保。
*/
int main()
{
    int age;
    char H,X;
    printf("请输入您的婚姻状态(请填Y/N)、性别(请填M/F)和年龄(请填数字)\n");
    scanf("%c %c %d",&H,&X,&age);
    if(H=='Y')
    printf("您已婚,公司已给您投保");
    else if(H=='N' && (X=='M' && age>=30))
        printf("您是30岁以上的未婚男性,公司已给您投保"); 
    else if(H=='N' && (X=='F' && age>=25))
        printf("您是25岁以上的未婚女性,公司已给您投保");
    else
    printf("您不满足公司投保要求,没有投保"); 
    return 0;
}

 

#include 
#define PI 3.14
/*
用于计算长方形、圆形和三角形的面积。根据用户的选择要能计算相应形状的面积。
根据用户选择的形状,提示用户输入该形状的详细信息:
长方形要求输入长和宽的值; 
圆形要求输入半径的值;
三角形要求输入底和高的值。计算相应形状的面积
*/
int main()
{
    int i;
    float c,k,r,d,g; 
    float s1,s2,s3;
    printf("您需要计算长方形的面积请输入‘1 ’\n计算圆形的面积请输入‘2 ’\n计算三角形的面积请输入‘3 ’\n");
    scanf("%d",&i); 
    getchar();
    switch(i)
    {
        case 1 :printf("您计算长方形的面积,请输入长和宽:");
                scanf("%f %f",&c,&k);
                s1=c*k;
                printf("长方形的面积为.2%f",s1); 
                break;
        case 2 :printf("您计算圆形的面积,请输入半径:");
                scanf("%f",&r);
                s2=r*r*PI;
                printf("圆形的面积为%.2f",s2);
                break;
        case 3 :printf("您计算三角形的面积,请输入底和高:");
                scanf("%f %f",&d,&g);
                s3=0.5*d*g;
                printf("三角形的面积为%.2f",s3);
                break;    
    }
    return 0;
}

 

 

#include 

/*
某公司员工的工资包括底薪和奖金两部分,每个员工的底薪都是 1000 元,而奖金取决于员工的级别。
不同级别的员工奖金比例如下表所示: 
等级 奖金占底薪的百分比 
A 45% B 40% C 30% D 25% 
根据员工级别,计算应付给该员工的工资。
*/
int main()
{
    char i;
    float s1,s2,s3,s4; 
    printf("您的员工级别为:"); 
    scanf("%c",&i);
    switch(i)
    {
        case 'A' :s1=1000+1000*0.45;
                printf("应付的员工工资为%.2f",s1);    break;
        case 'B' :s2=1000+1000*0.4;
                printf("应付的员工工资为%.2f",s2);    break;
        case 'C' :s3=1000+1000*0.3;
                printf("应付的员工工资为%.2f",s3);    break;
        case 'D' :s4=1000+1000*0.25;
                printf("应付的员工工资为%.2f",s4);    break;    
    } 
    return 0;
}
#include 

/*
输入某年某月某日,判断这一天是这一年的第几天。
*/
int main()
{
    int year,month,day;
    int i;
    scanf("%d %d %d",&year,&month,&day);
    if((year%4!=0 && year%100==0) || year%400!=0)
    {
        switch(month)
        {
            case 1 :i=day;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 2 :i=day+31;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 3 :i=day+59;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 4 :i=day+90;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 5 :i=day+120;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 6 :i=day+151;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 7 :i=day+181;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 8 :i=day+212;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 9 :i=day+243;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 10 :i=day+273;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 11 :i=day+304;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 12 :i=day+334;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
        }
    }
    else
    {
        switch(month)
        {
            case 1 :i=day;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 2 :i=day+31;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 3 :i=day+60;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 4 :i=day+91;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 5 :i=day+121;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 6 :i=day+152;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 7 :i=day+182;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 8 :i=day+213;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 9 :i=day+244;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 10 :i=day+274;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 11 :i=day+305;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
            case 12 :i=day+335;
                printf("这一天是%d年%d月%d日的第%d天",year,month,day,i);break;
        }
    }
    return 0;    
}


推荐阅读
author-avatar
手机用户2602881441
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有