相关推荐recommended
C语言今日份练习
作者:mmseoamin日期:2024-02-05

//1.题目名称:从大到小输出

//   题目内容:写代码将三个数按从大到小输出

#include

int main()

{

    int a = 0;

    int b = 0;

    int c = 0;

    scanf_s("%d %d %d", &a, &b, &c);//2 1 3

    int d = 0;

    if (a < b)

    {

        

        d = a;

        a = b;

        b = d;

    }

    else if (a < c)//else 是否则 if 是如果 

    {

        d = a;

        a = c;

        c = d;

    }

    if (b < c)//这里不能加else 因为这样的话就只会执行第二个else if 而这个里面的语句不执行

    {

        

        d = b;

        b = c;

        c = d;

    }

    printf("%d %d %d\n", a, b, c);

    return 0;

}

//2.题目名称:打印3的倍数的数

//   题目内容:写一个代码打印1-100之间所有3的倍数的数字

#include

int main()

{

    int i = 0;

  int count=0;

    for (i = 1; i <= 100; i++)

    {

        if (i % 3 == 0)

        {

            printf("%d ", i);

            count++;

        }

    }

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

    return 0;

}

//3.题目名称:最大公约数

//   题目内容:给定两个数,求这两个数的最大公约数

//   辗转相除法:公约数 两个数取模,不为0,再取模,取到0的话就为最大公约数

#include

int main()

{

    int a = 0;

    int b = 0;

    scanf_s("%d %d", &a, &b);

    int r = 0;

    while (a % b)

    {

        r = a % b; //18%24=18

        a = b;

        b = r;

    }

    printf("%d\n", b);

    return 0;

}

//4.题目名称: 打印闰年(要想知道多少个闰年count++就行)

//   题目内容:打印1000年到2000年之间的闰年

#include

int main()

{

    int i = 0;

    int count = 0;

    for (i = 1000; i <= 2000; i++)

    {

                //判断i是否为闰年(两个条件用if和else if)(也可以if(()||())

                //1.能被4整除并且不能被100整除是闰年

                //2.能被400整除是闰年

                if (i % 4 == 0 && i % 100 != 0)

                {

                    printf("%d ", i);

                    count++;

                }

                else if (i % 400 == 0)

                {

                    printf("%d ", i);

                    count++;

                }

            }

        if (((i % 4 == 0) && (i % 100 != 0)) || (i % 400 == 0))

        {

            printf("%d ", i);

            count++;

        }

    }

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

        return 0;

}

//5.题目名称:打印素数

//   题目内容:写一个代码:打印100-200之间的素数

#include

int main()

{

    int i = 0;

    int count = 0;

    for (i = 100; i <= 200; i++)

    {

        //判断i是否为素数

        //素数判断的规则

        //1.试除法

        //产生2->i-1个数

        int j = 0;

        for (j = 2; j < i; j++)//j

        {

            if (i % j == 0)

            {

                break;

            }

        }

        //1.break跳到这里来

        //2.都是素数时到这里来

        //固定一个

        if (j == i)

        {

            printf("%d ", i);

            count++;

        }

    }

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

    return 0;

}

//优化算法(开平方)即a和b中至少有一个数字<=开平方i(i=a*b);也可以在奇数里找,偶数肯定不是素数

//6.题目名称:数9的个数

//   题目内容:编写程序数一下1到100的所有整数中出现多少个数字9

#include

int main()

{

    int i = 0;

    int count = 0;

    for (i = 1; i <= 100; i++)

    {

        if (i % 10 == 9)

            count++;

         if (i / 10 == 9)

            count++;

    }

    printf("%d ", count);

    return 0;

}

//7.题目名称:分数求和

//   题目内容:计算1/1-1/2+1/3-1/4...+1/99-1/100的值,打印出结果

#include

int main()

{

    int i = 0;

    int b = 1;

    double a = 0;

    double sum = 0.0;

    for (i = 1; i <= 100; i++)

    {

        a = 1.0 / i;

        sum += b * a;

        b = -b;

        

    }

    printf("%lf ", sum);

    return 0;

}

//8.题目名称:求最大值

//   题目内容:求10个整数中最大值

#include

int main()

{

    int arr[] = { -1,-2,-3,-4,-5,-6,-7,-8,-9,-10 };

    int max = arr[0];//认为max就是最大值,再把里面每个元素跟max比较,再互换

    int i = 0;

    int a = 0;

    int sz = sizeof(arr) / sizeof(arr[0]);

    for (i = 0; i < sz; i++)

    {

        if (max < arr[i])

        {

            a = max;

            max = arr[i];

            arr[i] = a;

        }

    }

    printf("%d ", max);

    return 0;

}

//9.题目名称:乘法口诀表

//   题目内容:在屏幕上输出9*9乘法口诀表

//1*1=1

//2*1=2 2*2=4 a*b=m 先确定行 再确定列

#include

int main()

{

    int i = 0;

    //确定打印9行

    for (i = 1; i <= 9; i++)

    {

        //打印一行  

        int j = 0;

        for (j = 1; j <= i; j++)

        {

            printf("%d*%d=%-2d ", i, j, i*j);

        }

        printf("\n");

    }

    return 0;

}

//10.题目名称:二分查找

//     题目内容:编写代码再一个整形有序数组中查找具体的某个数

//     要求:找到了就打印数字所在的下标,找不到则输出:找不到

#include

int main()

{

    int arr[] = { 1,2,3,4,5,6,7,8,9,10 };

    int k = 7;

    int left = 0;

    int sz = sizeof(arr) / sizeof(arr[0])-1;

    int right = sz;

    int mid = 0;

    while (left <= right)//加一个循环,因为要一直找

    {

        mid = (left + right) / 2;

        if (arr[mid] > k)

        {

            right = mid - 1;

        }

        else if (arr[mid] < k)

        {

            left = mid + 1;

        }

        else

            break;

    }

    if (left <= right)

        printf("找到了,下标是%d\n", mid);

    else

        printf("找不到\n");

    return 0;

}

//11.题目名称:猜数字游戏

//     题目内容:1.电脑会生成一个随机数

//                       2.猜数字

#include

#include

#include

void game()

{

    //1.生成一个随机数

    int ret = 0;

    int guess = 0;//接收猜的数字

    //拿时间戳来设置随机数的生成起始点

    //time_t time(time_t *timer)

    //time_t

    ret = rand() % 100 + 1;//生成1-100之间随机数

    //2.猜数字

    while (1)

    {

        printf("请猜数字:>");

        scanf_s("%d", &guess);

        if (guess > ret)

        {

            printf("猜大了\n");

        }

        else if (guess < ret)

        {

            printf("猜小了\n");

        }

        else

        {

            printf("恭喜你,猜对了\n");

            break;

        }

    }

}

void menu()

{

    printf("*************************************\n");

    printf("****   1.play     0.exit         ****\n");

    printf("*************************************\n");

}

int main()

{

    int input=0;

    srand((unsigned int)time(NULL));

    do {

        menu();

        printf("请选择:>");

        scanf_s("%d",&input);//要是输入1或0没问题,但是输入其他数有问题要用default所以想到switch语句

        switch (input)

        {

        case 1:

            game();

            break;

        case 0:

            printf("退出游戏\n");

            break;

        default:

            printf("选择错误,请重新选择\n");

            break;

        }

    } while (input);

    return 0;

}

12.题目名称:关机程序

   题目内容:写一个关机程序

#define _CRT_SECURE_NO_WARNINGS 1

#include

#include

#include

int main()

{

    char input[10] = { 0 };

    //shutdown - s - t 60

    //cmd command-命令行

    //system()-执行系统命令的

    system("shutdown -s -t 60");

again:

    printf("请注意,你的电脑将在1分钟内关机。如果输入:我是猪,就取消关机\n请输入:>");

    scanf("%s", &input);

    if (strcmp(input,"我是猪") == 0)//比较两个字符串-strcmp()

    {

        system("shutdown -a");

    }

    else

    {

        goto again;

    }

    return 0;

}