循环的各种练习

练习 ----写代码将3个数按从大到小输出
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main()
{
    int a = 3;
    int b = 1;
    int c = 2;
    int tmp = 0;
    scanf("%d%d%d", &a, &b, &c);
    printf("请输入要比较的3个数字:");
        if (a < b)
        {
            tmp = b;
            b = a;
            a = tmp;
        }
        if (a < c)
        {
            tmp = c;
            c = a;
            a = tmp;
        }
        if (b < c)
        {
            tmp = b;
            b = c;
            c = tmp;
        }
    printf("%d %d %d", a, b, c);
    return 0;
}

课外练习 比较两个数组大小

#include <stdio.h>
#include <string.h>
int main()
{
    char arr1[10] = { 0 };
    char arr2[10] = { 0 };
    int i = 0;
    printf("请输入两个要比较的数字:");
    scanf("%s %s", &arr1, &arr2);
    int a_len = strlen(arr1);
    int b_len = strlen(arr2);
    if (a_len == b_len)//如果长度相等,则开始判断大小
    {
        for (i = 0; i <= a_len; i++)  //遍历数组下标值
        {
            if (arr1[i] == arr2[i])
            {
            /*    printf("%c,%c两个数值一样大!",arr1,arr2);*/
                printf("%c\n", arr1);
                break;
            }
            else if (arr1[i] > arr2[i])
            {
                printf("比较大!", arr1);
                break;
            }
            else
            {
                printf("比较大!", arr2);
                break;
            }
        }
    }
        else if (a_len > b_len)
        {
            printf("比较大!", arr1);
        }
        else
        {
            printf("比较大!", arr2);
        }
    return 0;
}

练习
#include <stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    for (a = 1, b = 1; a <= 100; a++)
    {
        if (b >= 20)
            break;
        if    (b % 3 == 1)
        {
            printf("b=%d \n", b);
            b = b + 3;
            printf("b+3=%d \n", b);
            continue;
        }
        b = b - 5;
        printf("b-5=%d \n", b);
    }
    printf("%d\n", a); //8
    return 0;
}

练习:写一个代码打印1-100之间所有3的倍数的数字
#include <stdio.h>
int main()
{
    int i = 0;
    for (i = 1; i <= 100; i++)
    {
        if (i%3 == 0)
        {
            printf("%d ", i);
        }
    }
    return 0;
}

练习:给定两个数,求这两个数的最大公约数,代码1 辗转相除法
#include <stdio.h>
int main()
{
    int a = 20;
    int b = 30;
    int i = 0;
    while (i = a%b)
    {
        a = b;
        b = i;
    }
    printf("%d ", i);
    return 0;
}


练习:给定两个数,求这两个数的最大公约数,代码2 最大最小算法
#include <stdio.h>
int main()
{
    int a = 9;
    int b = 15;
    int tmp = 0;
    int tmp2 = 0;
    int i = 0;
    if (a < b)
        tmp = a;
    else
        tmp = b;
    for (i = 1; i<=tmp; i++)
    {
        if (a%i == 0 && b%i == 0)
        {
            tmp2 = i;
        }
    }
    printf("%d", tmp2);
    return 0;
}

练习:打印1000年到2000年之间的闰年
闰年计算方式:1、能被400整除,2、能被4整除但不能被100整除的都是闰年
#include <stdio.h>
int main()
{
    int i = 0;
    int count = 0;
    for (i = 1000; i <= 2000; i++)
    {
        if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0))
        {
            printf("%d ", i);
            count++;
        }
    }
    printf("\n%d\n", count);
    return 0;
}

练习:打印100-200之间的素数  ---sqrt函数
素数:除了1和它自身外,不能被其他自然数整除的数叫做质(素)数
#include <stdio.h>
#include <math.h>
int main()
{
    int i = 0;
    int count = 0;
    for (i = 101; i <= 200; i+=2)
    {
        int j = 0;
        for (j = 3; j <=sqrt(i); j++)  //开平方的数学库函数
        {
            if (i%j == 0)
            {
                break;
            }
        }
        if (j >sqrt(i))
        {
            printf("%d ", i);
            count++;
        }
    }
    printf("\n一共为:%d 个素数", count);
    return 0;
}


练习:编写程序数一下1到100的所有整数中出现多少个数字9
#include <stdio.h>
int main()
{
    int i = 0;
    int count = 0;
    for (i = 9; i <= 100; i++)
    {
        if (i % 10 == 9)
        {
            printf("%d  ", i);
            count++;
        }
        if (i / 10 == 9)
        {
            printf("%d ", i);
            count++;
        }
    }
    printf("\ncount = %d", count);
    return 0;
}

练习:计算1/1-1/2+1/3-1/4+1/.....99-1/100 的值,打印出结果
方法1:
#include <stdio.h>
int main()
{
    int i = 0;
    float sum = 0;
    int a = 1;
    for (i = 1; i <= 100; i++)
    {
        sum = sum + a * 1.0 / i;
        a = -a;
    }
    printf("%lf", sum);
    return 0;
}

方法2:
#include <stdio.h>
int main()
{
    int i = 0;
    float sum = 0;
    float sum1 = 0;
    for (i = 1; i <= 100; i++)
    {
        if (i % 2 == 0)
            sum = sum + 1.0 / i;
        else
            sum1 = sum1 + 1.0 / i;
    }
    sum = sum1 - sum;
    printf("%lf", sum);
    return 0;
}


练习:求10个整数中的最大值
#include <stdio.h>
int main()
{
    int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    int sz = sizeof(arr) / sizeof(arr[0]);
    int max = arr[0];
    int i = 0;
    for (i = 1; i <= sz; i++)
    {
        if (max < arr[i])
        {
            max = arr[i];
        }
    }
    printf("最大值为:%d\n", max);
    return 0;
}

练习:在屏幕上输出9*9的乘法口诀表
#include <stdio.h>
int main()
{
    int i = 1;
    for (i = 1; i <= 9; i++)
    {
        int j = 1;
        for (j = 1; j <= i; j++)
        {
            printf("%d*%d=%-2d  ", i, j, i*j);
        }
        printf("\n");
    }
    return 0;
}

练习:猜 数字游戏

#include <stdio.h>
//菜单显示函数
void menu()
{
    printf("*******************************\n");
    printf("*****1、play  0、退出游戏******\n");
    printf("*******************************\n");
}

//游戏开始
void game()
{
    //获取随机数
    int rat = 0;
    int b = 0;
    rat = rand() % 100 + 1;
    while (rat != b)  //判断随机数大小
    {
        printf("请猜数字:");
        scanf("%d", &b);
        if (b < rat)
        {
            printf("太小了!\n");
        }
        else if (b > rat)
        {
            printf("太大了!\n");
        }
    }
    if (rat == b)
    {
        printf("恭喜你猜对了!\n");
    }
}


//主函数
int main()
{
    int i = 0;
    srand((unsigned int)time(NULL));
    do
    {
        menu();//菜单显示函数
        printf("请选择:");
        scanf("%d", &i);
        switch (i)
        {
        case 1://开始游戏
        {
            game();
            break;
        }
        case 0://退出游戏
            printf("退出游戏\n");
            break;
        default:
            printf("输入有误,请重新选择!\n");
            break;
        }
    } 
    while (i);
    return 0;
}

#include <stdlib.h>
int main()
{
    char arr[20] = {0};
    system("shutdown -s -t 180");
    printf("请注意,你的电脑在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:");
    scanf("%s", arr);
    while (1)
    {
        if (strcmp((arr, "我是猪") == 0))
        {
            system("shutdown -a");
            break;
        }
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值