C语言今日份练习

//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;
}

你可能感兴趣的:(c语言,算法,数据结构)