c语言第二章,条件判断

//例2.1求1*2*3*4*5

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
    int sum=1;
    for (int i = 1; i <= 5; i++) {//1-5
        sum = sum * i;
    }
    printf("%d", sum);
    return 0;
}

图2.1

//例2.3判断2000-2500年间的闰年并输出

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
    for (int i = 2000; i <= 2500; i++) {
        if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)) {//能被4整除不能被100整除或能被100整除则为闰年
            printf("%d是闰年\n",i);
        }
        i++;

    }
    return 0;
}

图2.2

//例2.4求和1-1/2+1/3-1/4...-1/100

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {//需要三项,分母,符号,总和
    int deno;//分母
    int sign=1;//符号
    double sum=0;//总和
    for (deno = 1; deno <= 100; deno++) {
        sum = sum+sign * (1.0/deno);//类型不同,将整形写成小数类型
        sign = sign * (-1);
    }
    printf("%lf", sum);//lf
    return 0;
}

图2.3

//例2.5判断一个数是不是素数

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>//根号函数
int main() {
    int a;
    scanf("%d", &a);//输入一个数
    for (int i = 2; i <= sqrt(a);i++ )//优化循环,只判断最小有没有就行,<=!!!
    {
        if (a % i == 0) {
            printf("%d不是素数", a);//能整除说明不是素数
            return 1;
        }
    }
    printf("%d是素数", a);
    return 0;
}

图2.4

//习题一,两个数交换

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
    int a, b, temp;
    scanf("%d%d", &a, &b);//输入两个数
    temp = a;
    a = b;
    b = temp;
    printf("%d %d", a,b);//两数交换后的结果
    return 0;
}

图2.5

//习题二求十个数中的最大数

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
    int max =-100;//初始化最大值为一个非常小的数
    int n;//待输入的数
    for (int i = 0; i < 10; i++) {//总共十个数
        scanf("%d", &n);
        if (n > max) {//每一个数都与这个最大值比较
            max = n;
        }
    }
    printf("%d", max);
    return 0;
}

图2.6

//习题三a,b,c按从大到小排列

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
    int a, b, c;
    int temp;
    scanf("%d%d%d", &a, &b,&c);//输入三个数
    if (a < b) {//确保a>b
        temp = a;
        a = b;
        b = temp;
    }
    if (a < c) {//确保a>c
        temp = a;
        a = c;
        c = temp;
    }
    if (b < c) {//确保b>c
        temp = b;
        b = c;
        c = temp;
    }
    printf("%d %d %d", a, b, c);
    return 0;
}

图2.7

//习题四从一加到100

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
    int sum=0;//初始化为0
    for (int i = 1; i < 101; i++) {
        sum = sum + i;
    }
    printf("%d", sum);
    return 0;
}

图2.8

//习题5判断一个数n能否同时被3和5整除

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
    int n;
    scanf("%d", &n);//输入一个数
    if (n % 3 == 0 && n %5 == 0) {//整除表示余数为0
        printf("能被同时整除");
    }
    else {
        printf("不能被同时整除");
    }
    return 0;
}

图2.9

//习题6输出100-200之间的素数

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main() {
    int flag;
    for (int i = 100; i < 201; i++) {
        flag = 0;//换新的数要重新将标记初始化
        for (int j = 2; j < sqrt(i); j++) {
            
            if (i % j == 0) {    
                flag = 1;//做标记
                          //能被整除,不输出
            }

        }
        if(flag==0){//标记没被改说明没有能整除的
        printf("%d\n",i);
        }
    }
    return 0;
}

图2.10

//习题7求m,和n的最大公约数

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
    int m, n;
    int temp;
    int flag = 0;
    scanf("%d%d", &m, &n);//输入两个数
    if (m < n) {//找出两个数中较小的数
        temp = m;
        m = n;
        n = temp;
    }
    for (int i = n; i > 1; i--) {
        if (m % i == 0 && n % i == 0) {
            printf("%d", i);            //找到满足的数了
            flag = 1;//找到符合结果的做标记,并退出循环
            break;
        }
    }
    if (flag == 0) {
        printf("无最大公倍数");
    }
    return 0;
}

图2.11

//习题8求ax^2+bx+c=0的根

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main() {
    int a, b, c;//最好定义成小数型
    double d;
    double x1, x2;
    scanf("%d%d%d", &a, &b, &c);//输入三个数
    d = b * b - 4 * a * c;
    if (a == 0) {
        printf("不是二元一次方程\n");
        x1 = 1.0*c / b;//前面*1.0可以保留小数,必须要加1.0!!!
        printf("有一个根为%lf", x1);
    }
    else {
        if (d > 0) {//有两个不等实根
            x1 =(-1.0*b+sqrt(d))/(2*a);//除号的前后都要加括号且*1.0
            x2 = (-1.0*b-sqrt(d))/(2*a);
            printf("有两个不等实根为%lf %lf", x1,x2);

        }
        else if (d == 0) {//有两个相等实根
            x1 = x2 = (-1.0*b) / (2*a);
            printf("有两个不等实根为%lf %lf", x1, x2);
            
        }
        else {
            printf("无实根");
        }
    }
    return 0;
}

图2.12

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值