信息学奥赛一本通 第三章 程序的控制结构第一节C语言非C++

第三章 程序的控制结构

第一节 if选择结构

2051:【例3.1】偶数

#include <stdio.h>

int main()
{
    
    
    // 声明一个整型变量a
    int a;

    // 从输入读取一个整型数并赋给a
    scanf("%d", &a);

    // 判断a是否为偶数
    // 如果a除以2的余数为0,那么a就是偶数
    if(a % 2 == 0){
    
    
        // 如果a是偶数,打印"yes"
        printf("yes");
    }

    return 0;
}

2052:【例3.2】范围判断

#include <stdio.h>

int main()
{
    
    
    // 声明一个整型变量a
    int a;

    // 从输入读取一个整型数并赋给a
    scanf("%d", &a);

    // 判断a是否在1和100之间
    // 如果a大于1并且小于100,那么a就在1和100之间
    if(a > 1 && a < 100){
    
    
        // 如果a在1和100之间,打印"yes"
        printf("yes");
    }

    return 0;
}

2053:【例3.3】三个数

#include <stdio.h>

int main()
{
    
    
    // 声明三个整型变量a, b, c
    int a, b, c;

    // 从输入读取三个整型数并分别赋给a, b, c
    scanf("%d %d %d", &a, &b, &c);

    // 以下代码段的功能是根据a, b, c的大小关系,将它们按照从大到小的顺序打印出来
    if(a >= b)
    {
    
    
        if(b >= c)
            printf("%d %d %d\n", a, b, c);
        else
        {
    
    
            if(a >= c)
                printf("%d %d %d\n", a, c, b);
            else //a < c
                printf("%d %d %d\n", c, a, b);
        }
    }
    else//a < b
    {
    
    
        if(a >= c)
            printf("%d %d %d\n", b, a, c);
        else//a < c
        {
    
    
            if(b >= c)
                printf("%d %d %d\n", b, c, a);
            else//b < c
                printf("%d %d %d\n", c, b, a);
        }
    }

    return 0;
}

2054:【例3.4】适合晨练

#include <stdio.h>

int main()
{
    
    
    // 声明一个整型变量t
    int t;

    // 从输入读取一个整型数并赋给t
    scanf("%d", &t);

    // 判断t是否在25和30之间(包括25和30)
    // 如果t大于等于25并且小于等于30,那么打印"ok!"
    // 否则,打印"no!"
    if(t >= 25 && t <= 30)
        printf("ok!");
    else
        printf("no!");

    return 0;
}

2055:【例3.5】收费

#include <stdio.h>

int main()
{
    
    
    // 声明两个双精度浮点型变量a和r,a代表行李重量,r代表费用
    double a, r;

    // 从输入读取一个浮点数并赋给a
    scanf("%lf", &a);

    // 判断a的值(行李重量)
    // 如果a小于等于20,那么费用r等于a乘以1.68
    // 否则,费用r等于a乘以1.98
    if(a <= 20)
        r = a*1.68;
    else
        r = a*1.98;

    // 打印费用r,保留两位小数
    printf("%.2f", r);

    return 0;
}

2056:【例3.7】最大的数

#include <stdio.h>

int main()
{
    
    
    // 声明三个双精度浮点型变量a、b和c
    double a, b, c;

    // 从输入读取三个浮点数并分别赋给a、b和c
    scanf("%lf %lf %lf", &a, &b, &c);

    // 判断a、b、c三者之间的大小关系
    // 如果a大于等于b,那么再判断a和c的大小
    // 如果a也大于等于c,那么打印a
    // 否则,说明a大于等于b但c大于a,那么打印c
    if(a >= b)
    {
    
    
        if(a >= c)
            printf("%.2lf", a);
        else//a >= b && c > a
            printf("%.2lf", c);
    }
    else//a < b
    {
    
    
        // 如果b大于等于c,那么打印b
        // 否则,说明a小于b且b小于c,那么打印c
        if(b >= c)
            printf("%.2lf", b);
        else//a < b && b < c
            printf("%.2lf", c);
    }
    return 0;
}

1039:判断数正负

#include <stdio.h>

int main()
{
    
    
    // 声明一个整型变量a
    int a;

    // 从输入读取一个整数并赋给a
    scanf("%d", &a);

    // 判断a的值
    // 如果a大于0,那么打印"positive"
    // 如果a小于0,那么打印"negative"
    // 否则,说明a等于0,那么打印"zero"
    if(a > 0)
        printf("positive");
    else if(a < 0)
        printf("negative");
    else
        printf("zero");

    return 0;
}

1040:输出绝对值

#include <stdio.h>

int main()
{
    
    
    // 声明一个双精度浮点型变量x
    double x;

    // 从输入读取一个浮点数并赋给x
    scanf("%lf", &x);

    // 判断x的值
    // 如果x大于等于0,那么直接打印x,保留两位小数
    // 否则,说明x小于0,那么打印-x(即x的绝对值),保留两位小数
    if(x >= 0)
    	printf("%.2lf", x);
    else
    	printf("%.2lf", -x);

    return 0;
}

1041:奇偶数判断

#include <stdio.h>

int main()
{
    
    
    // 声明一个整型变量n
    int n;

    // 从输入读取一个整数并赋给n
    scanf("%d", &n);

    // 判断n是偶数还是奇数
    // 如果n除以2的余数是0,那么n是偶数,打印"even"
    // 否则,n是奇数,打印"odd"
    if(n % 2 == 0)
		printf("even");
	else
		printf("odd");

    return 0; 
}

1042:奇偶ASCII值判断

#include <stdio.h>

int main()
{
    
    
    // 声明一个字符变量c
    char c;

    // 从输入读取一个字符并赋给c
    // 或者可以使用c = getchar();从输入读取一个字符并赋给c
    scanf("%c", &c);

    // 判断字符c的ASCII码是奇数还是偶数
    // 如果是奇数,打印"YES"
    // 否则(即是偶数),打印"NO"
    // 这里的%s是用来打印字符串的,如果表达式c % 2 == 1为真(即非零),则选择"YES",否则选择"NO"
    printf("%s", c % 2 == 1 ? "YES" : "NO");

    return 0;
}

1043:整数大小比较

#include <stdio.h>

int main()
{
    
    
    // 声明两个整型变量x和y
    int x, y;

    // 从输入读取两个整数并分别赋给x和y
    scanf("%d %d", &x, &y);

    // 判断x和y的大小关系
    // 如果x大于y,打印大于符号'>'
    // 如果x小于y,打印小于符号'<'
    // 否则(即x等于y),打印等于符号'='
    if(x > y)
        printf(">");
    else if(x < y)
        printf("<");
    else
        printf("=");

    return 0;
}

1044:判断是否为两位数

#include <stdio.h>

int main()
{
    
    
    // 声明一个整型变量x
    int x;

    // 从输入读取一个整数并赋给x
    scanf("%d", &x);

    // 判断x是否在10到99之间(包括10和99)
    // 如果在这个范围内,打印数字1
    // 否则(即不在这个范围内),打印数字0
    if(x >= 10 && x <= 99)
        printf("1");
    else
        printf("0");

    return 0;
}

1045:收集瓶盖赢大奖

#include <stdio.h>

int main()
{
    
    
    // 声明两个整型变量a和b
    int a, b;

    // 从输入读取两个整数并分别赋给a和b
    scanf("%d %d", &a, &b);

    // 判断a是否大于等于10或者b是否大于等于20
    // 如果满足以上两个条件中的任意一个,打印数字1
    // 否则(即a小于10且b小于20),打印数字0
    if(a >= 10 || b >= 20)
        printf("1");
    else
        printf("0");

    return 0;
}

1046:判断一个数能否同时被3和5整除

#include <stdio.h>

int main()
{
    
    
    // 声明一个整型变量n
    int n;

    // 从输入读取一个整数并赋给n
    scanf("%d", &n);

    // 判断n是否同时能被3和5整除
    // 如果能同时被3和5整除,打印"YES"
    // 否则(即不能同时被3和5整除),打印"NO"
    if(n % 3 == 0 && n % 5 == 0)
        printf("YES");
    else
        printf("NO");

    return 0;
}

1047:判断能否被3,5,7整除

#include <stdio.h>

int main()
{
    
    
    // 声明一个整型变量a
    int a;

    // 从输入读取一个整数并赋给a
    scanf("%d", &a);

    // 判断a是否能被3整除
    // 如果能被3整除,打印"3 "
    if (a % 3 == 0)
        printf("3 ");

    // 判断a是否能被5整除
    // 如果能被5整除,打印"5 "
    if (a % 5 == 0)
        printf("5 ");

    // 判断a是否能被7整除
    // 如果能被7整除,打印"7 "
    if (a % 7 == 0)
        printf("7 ");

    // 判断a是否不能被3、5、7任何一个整除
    // 如果不能被3、5、7任何一个整除,打印"n"
    if (a % 3 != 0 && a % 5 != 0 && a % 7 != 0)
        printf("n");

    return 0;
}

1048:有一门课不及格的学生

#include <stdio.h>

int main()
{
    
    
    // 声明两个整型变量a和b
    int a, b;

    // 从输入读取两个整数并分别赋给a和b
    scanf("%d %d", &a, &b);

    // 判断a和b是否满足以下两个条件之一:
    // 1) a小于60且b大于等于60
    // 2) a大于等于60且b小于60
    // 如果满足以上两个条件中的任意一个,打印数字1
    // 否则(即a和b都小于60或者都大于等于60),打印数字0
    if((a < 60 && b >= 60) || (a >= 60 && b < 60))
        printf("1");
    else
        printf("0");

    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44738632/article/details/134974741