c语言第四章,选择结构


//选择结构

//例4.1求根

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main() {
    double a, b, c;
    scanf("%lf%lf%lf", &a, &b, &c);//输入abc
    double d;
    double x1, x2;
    d = b * b - 4 * a * c;//算出得他值
    if (d < 0) {
        printf("无实根\n");
    }
    else  if(d==0){
        printf("有两个相等实根:\n");
        x1 = x2 = (-b + sqrt(d)) / (2.0 * a);//2.0必须写不能漏
        printf("%.2lf\n%.2lf\n", x1, x2);
    }
    else {
        printf("有两个不相等实根:\n");
        x1= (-b + sqrt(d)) / (2.0 * a);
        x2= (-b - sqrt(d)) / (2.0 * a);
        printf("%.2lf\n%.2lf\n", x1, x2);
    }
    return 0;
}

图4.1

//例4.2输入两个实数,按从小到大的顺序输出

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
    double a, b;
    scanf("%lf%lf", &a, &b);
    double temp;
    if (a > b) {//如果是从大到小的顺序则交换
        temp = a;
        a = b;
        b = temp;
    }
    printf("%.2lf %.2lf", a, b);
    return 0;
}

图4.2

//例4.4判断输入的字符是否为大写如果是则转换为小写

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
    char c;
    scanf("%c", &c);
    if (c >= 'A' && c <= 'Z') {//包含A和Z
        c = c + ('a' - 'A');//大写ASCII小于小写
    }
    printf("%c", c);
    return 0;
}

图4.3

//例4.5越阶函数,输入x求y

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//y=-1,(x<0)
    //0(x=0)
    //1(x>0)
int main() {
    int x,y;
    scanf("%d", &x);//输入x
    if (x < 0) {//(x<0)
        y = -1;
    }
    else if(x == 0) {//(x=0)
        y = 0;
    }
    else {//(x>0
        y = 1;
    }
    printf("%d", y);//输出y值


    return 0;
}

图4.4

//按照成绩等级输出百分数分数段,switch case

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
    char c;
    scanf("%c", &c);//输入等级
    switch (c) {
    case 'A':printf("成绩为85-100\n"); break;//每一个都要加break
    case 'B':printf("成绩为70-84\n"); break;
    case 'C':printf("成绩为60-69\n"); break;
    case 'D':printf("成绩为<60\n"); break;
    default:printf("error\n"); break;
    }

    return 0;
}

图4.6

//例4.7简单菜单+函数+switch应用

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//输入a或A调用Add函数,两个成绩相加
//输入b或B调用Mul函数,两个成绩相乘
//输入c或C调用Aver函数,求平均数
double Add(double a, double b) {//加法函数
    double sum;
    sum = a + b;
    return sum;
}
double Mul(double a, double b) {//乘法函数
    double sum;
    sum = a * b;
    return sum;
}
double Aver(double a, double b) {//求平均数
    double sum;
    sum = (a + b)/2.0;
    return sum;
}
int main() {
    printf("*****欢迎进入菜单*****\n");
    printf("相加请按a或A\n");
    printf("相乘请按b或B\n");
    printf("求平均数请按c或C\n");
    char c;
    scanf("%c", &c);//先输字母后输数字
    printf("请输入两门成绩:");
    double a, b;
    
    scanf("%lf%lf", &a, &b);
    
    switch (c) {
    case 'a':
    case 'A': printf("结果为:%.2lf", Add(a, b)); break;//两数相加
    case 'b':
    case 'B':printf("结果为:%.2lf", Mul(a, b)); break;//两数相乘
    case 'c':
    case 'C': printf("结果为:%.2lf", Aver(a, b)); break;//求平均数
    default:printf("error"); break;
    }
    return 0;
}

图4.7

//习题5,输入一个小于1000的数,输出平方根,没有则输出整数部分,大于1000重新输入

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main() {
    int n;
    scanf("%d", &n);
    while(1){//不小于1000则一直循环
        if (n > 1000) {
            printf("请重新输入");
            scanf("%d", &n);
        }
        else {
            break;
        }
    }
    n = sqrt(n);//小于1000,取平方根
    printf("%d", n);

    return 0;
}

图4.8

//习题9,输入n位数(n<5),输出n并逆序输出每一个数

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//此代码能输入n>五位的数
int main() {
    int n;
    int sum = 1;//sum从一开始
    int n2;
    scanf("%d", &n);//输入一个数
    n2 = n;//用另一个符号再存一便这个数
    while (1) {
        n2 = n2 % 10;//取末位数
        printf("%d", n2);
        n = n / 10;//舍末位数
        if (n > 0) {
            n2 = n;
            sum = sum + 1;
        }
        else {
            break;
        }
    }
    printf(" %d",sum);
    return 0;
}

图4.9

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值