自学内容网 自学内容网

鹏哥C语言49---第5次作业:选择语句 if 和 switch

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//---------------------------------------------------------------------------------第 5 次作业:选择语句 if 和 switch

//-----------------------------------------------------------------1.输出结果
/*
int main()
{
    int i = 0;
    for (i = 0; i < 10; i++)
    {
        if (i = 5) //这里不是判断,是赋值
            printf("%d", i); // 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 死循环

        //if (i == 5) //这里不是判断,是赋值
        //    printf("%d", i); // 5 
    }

    return 0;
}
*/

//-----------------------------------------------------------------2.单选
/*
关于if语句说法正确是:( C ) √
题目内容:
A.if语句后面只能跟一条语句
B.if语句中0表示假,1表示真 -----------非0表示真,不够准确
C.if语句是一种分支语句,可以实现单分支,也可以实现多分支
D.else语句总是和它的对齐的if语句匹配
*/

//-----------------------------------------------------------------3.单选
/*
题目名称:
关于switch说法不正确的是:(A) × C
题目内容:
A.switct语句中的default子句可以放在任意位置
B.switch语句中case后的表达式只能是整形常量表达式----------char 也属于整型家族,因为字符存储时,存的是ASCLL码值
C switch语句中case子句必须在default子句之前
D.switch语句中case表达式不要求顺序
*/

/*--------------------------------------例如
int main()
{
    int n = 0;
    scanf("%d", &n);
    switch (n)
    {
    case 1:
        {
            printf("1\n");
            break;
        }
   default:
        {
            printf("3\n");
            break;
        }
    case 2:
        {
            printf("2\n");
            break;
        }
    }
    return 0;
}
*/

//-----------------------------------------------------------------4.单选
/*
题目名称:

int func(int a)
{
    int b;
    switch (a)
    {
    case 1: b = 30; -----------只有有 break 才能跳出语句,没有 break,接着往下走
    case 2: b = 20;
    case 3: b = 16;
    default: b = 0;
    }
    return b;
}
题目内容:    返回值为(D)
A.30
B.20
C.16
D.0
*/

//-----------------------------------------------------------------5.单选
/*
题目名称:
switch(c)语句中,c不可以是什么类型 (D)
题目内容:
A.int
B.long
C.char
D.float
*/

//-----------------------------------------------------------------6.输出结果
/*
int main() 
{
    int x = 3;
    int y = 3;
    switch (x % 2)
    {
    case 1:
        switch (y)
        {
        case 0:
            printf("first");
        case 1:
            printf("second");
            break;
        default: printf("helIo");
        }
    case 2:
        printf("third");
    }
        return 0;
}

// 代码执行结果  helIothird
*/

//----------------------------------------------------------------------7. 编程题:从大到小 输出
//输入:2 3 1
//输出:3 2 1

//----------------------------------- 教学版 1
/*
int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    //输入
    scanf("%d %d %d", &a,&b,&c);
    //调整顺序
    int tmp = 0;
    if (a < b)
    {
        tmp = a;
        a = b;
        b = tmp;
    }
    if (a < c)
    {
        tmp = a;
        a = c;
        c = tmp;
     }
    if (b < c)
    {
        tmp = b;
        b = c;
        c = tmp;
    }
    //输出
    printf("%d %d %d\n", a,b,c);
    return 0;
}
*/

//----------------------------------- 教学版 优化:写个交换函数
/*
void Swap(int* px, int* py)
{
    int tmp = *px;
    *px = *py;
    *py = tmp;
}

int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    //输入
    scanf("%d %d %d", &a, &b, &c);
    //交换数值,调整顺序
    int tmp = 0;
    if (a < b)
        Swap(&a, &b);
    if (a < c)
        Swap(&a, &c);
    if (b < c)
        Swap(&b, &c);
    //输出
    printf("%d %d %d\n", a, b, c);
    return 0;
}
*/

//----------------------------------------------------------------------8. 打印3 的倍数的数
// 写一个代码打印1-100 之间所有3 的倍数的数字

//--------------------------------------------------------- 自写版(正确)
/*
int main()
{
    int i = 0;
    for (i = 1; i <= 100; i++)
    {
        if (i % 3 == 0)
        {
            printf("%d ", i);
        }
    }
    return 0;
}
*/

//-------------------------------------------------------------方法2
/*
int main()
{
    int i = 0;
    for (i = 3; i <= 100; i += 3)
    {
        printf("%d ", i);
    }
    return 0;
 }
 */

 //---------------------------------------------------------------------------9. 最大公约数
//给定两个数,求这两个数的最大公约数
//---------------------------------------------- 自写版:只找出了所有公约数 ×
#include <math.h>
/*
void Swap(int* px, int* py)
{
    int tmp = *px;
    *px = *py;
    *py = tmp;
}

int main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d", &a, &b);
    //找较小值
    Swap(&a, &b);
    int min = b;
    int i = 0;
    for (i = 1; i <= min; i++)
    {
        if ((a % i == 0) && (b % i == 0))
        {
            printf("%d ", i);
        }
    }

    return 0;
}
*/
//----------------------------------------------教学版1:暴力求解,不够高效
/*
int main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d", &a, &b);
    int min = (a < b) ? a : b;  //三目操作符 找最小值
    int m = min;
    while (1)
    {
        if (a % m == 0 && b % m == 0)
        {
            break; // 跳出循环
        }
        m--;
    }
    printf("%d ", m);

    return 0;
}
*/

//----------------------------------------------教学版2:辗转相除法(数学)
/*
int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    scanf("%d %d", &a, &b);
    //求最大公约数
    while (c=a%b)
    {
        a = b;
        b = c;
    }
    printf("%d ", b);

    return 0;
}
*/
//---------------------------------------------------------------------------10. 打印1000-2000年之间的闰年
//------------------------------------之前写过,没问题 √
/*
int main()
{
    int i = 0;
    int count = 0;
    for (i = 1000; i <= 2000; i++)
    {
        if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0))
        {
            count++;
            printf("%d ", i);
        }
    }
    printf("\ncount=%d ", count);
    return 0;
}
*/

//---------------------------------------------------------------------------11. 打印100-200之间的素数

int main()
{
    int i = 0;
    int count = 0;
    for (i = 101; i <= 200; i += 2) 
    {
        
        int flag = 1;// flag是1 表示他是素数
        int j = 0;
        //for (j = 2; j <= i - 1; j++)
        for (j = 2; j <= sqrt(i); j++)
        {
            if (i % j == 0)
            {
                flag = 0;
                //break;
            }
        }
        if (flag == 1)
        {
            count++;
            printf("%d ", i);
        }

    }
    printf("\ncount=%d\n", count);

    return 0;
}
 


原文地址:https://blog.csdn.net/most_wanted_/article/details/142466177

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!