C语言经典代码练习题

news2025/3/21 22:57:02

1.输入一个4位数:输出这个输的个位 十位 百位 千位

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a;
    printf("输入一个4位数:");
    scanf("%d",&a);
    printf("个位:%d\n",a%10);
    printf("十位:%d\n",a%100/10);
    printf("百位:%d\n",a/100%10);
    printf("千位:%d\n",a/1000);

    return 0;
}

2.从键盘读入两个整数,输出他们的和

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a,b;
    printf("输入第一个整数:");
    scanf("%d",&a);
    printf("输入第二个整数:");
    scanf("%d",&b);
    printf("它们的和:%d\n",a+b);
    return 0;
}

3.一个水分子的质量约为3.0*10^-23g,1夸脱水大约有950g,编写一个程序,要求输入水的夸脱数,然后显示这么多水中包含多少水分子。表示:3.0e-23 打印格式:%f或%e

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a;
    printf("输入水的夸脱数:");
    scanf("%d",&a);
    printf("%d夸脱水包含%f水分子\n",a,a*950/3.0e-23);
    return 0;
}

4.实现大小写转换(用getchar、putchar实现)即如果是大写字母转成小写输出如果是小写字母转为大写输出。

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a=getchar();
    if(65<=a&&a<=90){
        putchar(a+32);
        putchar(10);
    }else if (a>=97&&a<=122)
    {
        putchar(a-32);
        putchar(10);
    }
    return 0;
}

5.从终端输入3个整数;从大到小输出。

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a, b, c;
    printf("请输入三个整数:\n");
    scanf("%d%d%d", &a, &b, &c);
    if (a <= b)
    {
        int m;
        m = a;
        a = b;
        b = m;
    }
    if (b >= c)
        printf("%d %d %d\n", a, b, c);
    else if (a >= c && c >= b)
        printf("%d %d %d\n", a, c, b);
    else
        printf("%d %d %d\n", c, a, b);
    return 0;
}

6.输入任意两个数,输出两数之间(包括这两个数)偶数之和

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a, b, c;
    int sum = 0;
    printf("输入任意两个数:\n");
    scanf("%d%d", &a, &b);
    if (a > b)
    {
        c = a;
        a = b;
        b = c;
    }
    for (int i = a; i <= b; i++)
    {
        if (i % 2 == 0)
            sum += i;
    }
    printf("%d与%d偶数之和为%d\n", a, b, sum);
    return 0;
}

7.写程序实现功能:读入两个整数(data1和data2)和一个运算符(op),计算表达式data1 op data2 的值.其中op可以为+、-、*、/四个符号中的任一种(用switch语句实现)

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a, b;
    char c;
    printf("输入两个整数:\n");
    scanf("%d%d", &a, &b);
    getchar();
    printf("输入一个运算符(+、-、*、/):\n");
    scanf("%c", &c);
    switch (c)
    {
    case '+':
        printf("%d%c%d=%d\n", a, c, b, a + b);
        break;
    case '-':
        printf("%d%c%d=%d\n", a, c, b, a - b);
        break;
    case '*':
        printf("%d%c%d=%d\n", a, c, b, a * b);
        break;
    case '/':
        printf("%d%c%d=%d\n", a, c, b, a / b);
        break;
    }
    return 0;
}

8.终端输入十个数,去掉其中最大值和最小值,求平均值。

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a[10];
    int max, min;
    int sum = 0;
    printf("输入十个数:\n");
    for (int i = 0; i < 10; i++)
    {
        scanf("%d", &a[i]);
        sum += a[i];
    }
    for (int i = 0; i < 10; i++)
    {
        max = a[0];
        min = a[0];
        if (a[i] > max)
            max = a[i];
        if (a[i] < min)
            min = a[i];
    }
    printf("sum=%d\n", sum);
    printf("max=%d\n", max);
    printf("min=%d\n", min);
    printf("去掉最大值和最小值,平均值为:%f\n", (float)(sum - max - min) / 8);
    return 0;
}

9.计算斐波那契数列前15项并逆序输出。

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a[15] = {1, 1};
    for (int i = 2; i < 15; i++)
    {
        a[i] = a[i - 2] + a[i - 1];
    }
    for (int i = 14; i >= 0; i--)
        printf("%d\n", a[i]);
    return 0;
}

10.循环输入一个5位数,判断它是不是回文数。当输入0时循环结束。即12321是回文数,个位与万位相同,十位与千位相同。

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a;
    printf("输入一个5位数:");
    while (1)
    {
        scanf("%d", &a);
        if (a == 0)
            break;
        if ((a % 10 == a / 10000) && (a / 10 % 10 == a / 1000 % 10))
            printf("是回文数\n");
        else
            printf("不是回文数\n");
        printf("输入一个5位数:");
    }
    return 0;
}

11.输入一个字符串,大小写转换输出。

#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
    char a[33] = {};
    scanf("%s", a);
    int n = strlen(a);
    for (int i = 0; i < n; i++)
    {
        if (a[i] >= 'a' && a[i] <= 'z')
            printf("%c", a[i] - 32);
        else if (a[i] >= 'A' && a[i] <= 'Z')
            printf("%c", a[i] + 32);
    }
    return 0;
}

12.冒泡排序。

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a[5] = {6, 5, 4, 2, 3};
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4 - i; j++)
        {
            if (a[j] > a[j + 1])
            {
                a[j] = a[j] ^ a[j + 1];
                a[j + 1] = a[j] ^ a[j + 1];
                a[j] = a[j] ^ a[j + 1];
            }
        }
    }
    for (int i = 0; i < 5; i++)
    {
        printf("%d", a[i]);
    }
    return 0;
}

13.选择排序。

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int a[5] = {5, 4, 6, 9, 7};
    int temp;
    for (int i = 0; i < 4; i++)
    {
        int min = i;
        for (int j = i + 1; j < 5; j++)
        {
            if (a[j] < a[min])
                min = j;
        }
        temp=a[i];
        a[i]=a[min];
        a[min]=temp;
    }
    for (int i = 0; i < 5; i++)
        printf("%d", a[i]);
    return 0;
}

14.字符串逆序输出(两种方法实现)。

#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
    // 字符串逆序输出
    // 法1
    // char a[] = "hello world";
    // char *p = a;
    // int n = strlen(a);
    // for (int i = n; i >= 0; i--)
    // {
    //     printf("%c ", p[i]);
    // }

    char a[] = "hello world";
    char *p = a + strlen(a) - 1;
    for (int i = 0; i < strlen(a); i++)
    {
        printf("%c", *p);
        p--;
    }

    // 法2
    // char a[] = "hello world";
    // char *p = a;
    // int n = strlen(a);
    // for (int i = 0; i < n / 2; i++)
    // {
    //     p[i] = p[i] ^ p[n - i - 1];
    //     p[n - i - 1] = p[i] ^ p[n - i - 1];
    //     p[i] = p[i] ^ p[n - i - 1];
    // }
    // printf("%s", p);
    // return 0;

    char a[66];
    gets(a);
    char *p = a;
    char *q = a + strlen(a) - 1;
    while (p < q)
    {
        *p = *p ^ *q;
        *q = *p ^ *q;
        *p = *p ^ *q;
        p++;
        q--;
    }
    printf("%s", a);
    return 0;
}

15.字符串转数字:"1234" -----> 1234(一千两百三十四)。

#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
    // 字符串转数字
    //法1
    // char a[33];
    // gets(a);
    // int n=strlen(a);
    // int sum=0;
    // int j;
    // for (int i = 1; i < n; i++)
    // {
    //     j*=10;
    // }   
    // for (int i = 0; i < n; i++)
    // {
    //     sum+=(a[i]-48)*j;
    //     j/=10;
    // }
    // printf("%d\n", sum);
    // return 0;

    //法2
    char a[33];
    gets(a);
    char *p=a;
    int n=0;
    while (*p!='\0')
    {
        n=n*10+(*p-48);
        p++;
    }
    printf("%d\n",n);
}

16.打印杨辉三角前十行(二维数组)。

#include <stdio.h>
int main(int argc, char const *argv[])
{
    // 打印杨辉三角前十行
    // 法1
    //  int a[10][10] = {0};
    //  for (int i = 0; i < 10; i++)
    //  {
    //      for (int j = 0; j <= i; j++)
    //      {
    //          if (j - 1 >= 0)
    //              a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
    //          else
    //              a[i][j] = 1;
    //      }
    //  }
    //  for (int i = 0; i < 10; i++)
    //  {
    //      for (int j = 0; j <= i; j++)
    //          printf("%-3d ", a[i][j]);
    //      printf("\n");
    //  }

    // 法2
    int a[10][10] = {};
    for (int i = 0; i < 10; i++)
    {
        a[i][0] = 1;
        a[i][i] = 1;
    }
    for (int i = 2; i < 10; i++)
    {
        for (int j = 1; j < 10; j++)
            a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
    }
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j <= i; j++)
            printf("%d ", a[i][j]);
        putchar(10);
    }
}

17.已知字符数组a[10]和b[10]中元素的值递增有序,用指针实现将两个数组中元素按照递增顺序输出。如:char a[10]=”acdgjmno” ; char b[10]=”befhil”;->”abcdefghijlmno”

#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
    char a[10] = "acdgjmno";
    char b[10] = "befhil";
    char *p = a, *q = b;
    int i = 0, j = 0;
    while (i < strlen(a) && j < strlen(b))
    {
        if (p[i] < q[j])
        {
            printf("%c", p[i]);
            i++;
        }
        else
        {
            printf("%c", q[j]);
            j++;
        }
    }
    if (i < strlen(a))
    {
        for (int k = i; k < strlen(a); k++)
            printf("%c", a[k]);
    }
    if (j < strlen(b))
    {
        for (int k = j; k < strlen(b); k++)
            printf("%c", b[k]);
    }
    return 0;
}

18.给定一串字符"I love china",实现以单词为单位的逆序,如:"china love i"

#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
    char a[] = "i love china";
    char *p = a;
    int n = strlen(a);
    for (int i = 0; i < n / 2; i++)
    {
        p[i] = p[i] ^ p[n - i - 1];
        p[n - i - 1] = p[i] ^ p[n - i - 1];
        p[i] = p[i] ^ p[n - i - 1];
    }
    char *q;
    char *k=NULL, temp;
    p = q = a;
    while (*p != '\0')
    {
        while (*p == ' ' )
            p++;
        q = p;
        while (*q != ' ' && *q != '\0')
            q++;
        k = q;
        q = k - 1;
        while (p < q)
        {
            temp = *p;
            *p = *q;
            *q = temp;
            p++;
            q--;
        }
        p = k;
    }
    printf("%s\n", a);
    return 0;
}

19.定义求x的n次方值的函数( x是实数, n为正整数)。

#include <stdio.h>

int fun(int x, int n)
{
    int r = 1;

    for (int i = 0; i < n; i++)
        r *= x;
    printf("%d\n", r);
    return r;
}

int main(int argc, char const *argv[])
{

    // int r = 1;
    // int x = 2;
    // for (int i = 0; i < 4; i++)
    //     r *= x;
    // printf("%d\n", r);

    printf("%d\n", fun(2, 4));
}

20.编写一个函数,函数的2个参数,第一个是一个字符,第二个是一个char *,返回字符串中该字符的个数。

#include <stdio.h>

int fun(char ch, char *p)   //ch=a='a', p=s
{
    int n = 0;
    while (*p != '\0') //*p
    {
        if (*p == ch)
            n++;
        p++; //p=p+1
    }

    return n;
}

int main(int argc, char const *argv[])
{
    char a = 'a';
    char s[32] = "abbba";
    printf("%d\n", fun(a, s));
}

21.编程实现strlen函数的功能,strlen计算字符串实际长度,不包含'\0'

#include <stdio.h>

int fun(char *p)
{
    int n = 0;
    while (*p)
    {
        n++;
        p++;
    }
    return n;
}

int main(int argc, char const *argv[])
{
    char s[32] = "abbba";
    int len = 0;
    len = fun(s);
    printf("%d\n", len);

    //printf("%d\n", fun(s));
    //printf("%d\n", fun("6666666"));
}

22.字符串"123"转换成整型123

#include <stdio.h>

int fun(char *p)
{
    int sum = 0;
    while (*p != '\0')
    {
        sum = sum * 10 + (*p - 48);
        p++;
    }
    return sum;
}

int main(int argc, char const *argv[])
{
    char str[32] = "123";
    printf("%d\n", fun(str));
}

23.封装函数实现两数交换。

#include <stdio.h>
void fun(int *x, int *y)
{
    int tmp;
    tmp = *x;
    *x = *y;
    *y = tmp;
}

int main(int argc, char const *argv[])
{
    int a = 10, b = 20;
    fun(&a, &b);
    printf("%d %d\n", a, b);
}

24.封装函数实现strcpy功能。

#include <stdio.h>

void fun(char *p, char *q)
{
    while (*q != '\0')
        *p++ = *q++;  //*p=*q; p++; q++;
    *p = '\0';
}

int main(int argc, char const *argv[])
{
    char a[32] = "";
    char b[32] = "hello";
    fun(a, b);
    printf("%s\n", a);
}

25.封装函数实现strcat功能。

#include <stdio.h>
#include <string.h>
void fun(char *p, char *q)
{
    while (*p)   //p=p+strlen(p);
        p++;
    while (*q)
        *p++ = *q++;
    *p = '\0';
}

int main(int argc, char const *argv[])
{
    char a[32] = "hello";
    char b[32] = "world";
    fun(a, b);
    printf("%s\n", a);
}

26.用递归函数求5的阶乘5!

#include <stdio.h>
#include <string.h>

int fac(int n)   //n=5  n=4 n=3 n=2 n=1
{
    if (n == 1)
        return 1;       //fac(1)=1
    if (n > 1)
        return n * fac(n - 1);  //递推阶段:5*fac(4)  fac(4)=4*fac(3) fac(3)=3*fac(2) fac(2)=2*fac(1)
                                                    //回归阶段:==> fac2(2)=2*1=2 ==>fac(3)=3*2=6 ==> fac(4)=4*6=24 ==>fac(5)=5*24=120
}

int main(int argc, char const *argv[])
{
    int n = 5;
    printf("%d\n", fac(n));
}

27.斐波那契数列:指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*) 求第五个数。

#include <stdio.h>
#include <string.h>

int fac(int n)   //5 4 
{
    if (n == 1 || n == 2)
        return 1;
    if (n > 2)
        return fac(n - 1) + fac(n - 2);   //fac(5)=fac(4)+fac(3)= fac(3)+fac(2) +fac(3) = 5
}

int main(int argc, char const *argv[])
{
    int n = 5;
    printf("%d\n", fac(n));
}

28.创建一个名为student的结构体,包含姓名,学号,班级,从终端输入学生的信息并打印。

#include <stdio.h>
#include <string.h>
struct student
{
    char name[32];
    int id;
    int class;
};

struct student s1;
int main(int argc, char const *argv[])
{
    scanf("%s %d %d", s1.name, &s1.id, &s1.class);
    printf("%s %d %d\n", s1.name, s1.id, s1.class);
}

29.typedef用法

#include <stdio.h>
#include <string.h>
//1.给普通变量重命名
typedef int size4;

//2. 给指针类型重命名
typedef int *int_p;

//3. 给数组类型重名
typedef int intArr5[5];

int main()
{
    size4 a = 10;                    //等同于int a=10;
    int_p p = &a;                    //等同于int *p=&a;
    intArr5 arr = {1, 2, 3, 4, 5}; //等同于int arr[5]={1,2,3,4,5};
    printf("%d\n", *p);     //10
    printf("%d\n", arr[3]);  //4
}

30.创建一个描述手机的结构体叫phone, 包含品牌,型号,颜色,价格。从终端输入你自己手机的信息并打印。(用typedef)。

#include <stdio.h>
#include <string.h>
typedef struct phone
{
    char brand[32];
    char type[32];
    char color[32];
    int price;
} ph;

ph my;
int main()
{
    scanf("%s %s %s %d", my.brand, my.color, my.type, &my.price);
    printf("%s %s %s %d\n", my.brand, my.color, my.type, my.price);
}

31.创建一个名为student的结构体数组,包含学号,姓名,成绩,(数据类型自己定义),从终端输入学生的信息并打印分数及格的学生信息(输入3人即可)。

#include <stdio.h>
typedef struct student
{
    char name[32];
    int number;
    int score;
} st;

int main(int argc, char const *argv[])
{
    st s[3];
    for (int i = 0; i < 3; i++)
        scanf("%s %d %d", s[i].name, &s[i].number, &s[i].score);

    for (int i = 0; i < 3; i++)
    {
        if (s[i].score >= 60)
            printf("%s %d %d\n", s[i].name, s[i].number, s[i].score);
    }
    return 0;
}

32.创建一个结构体数组,数组名为book,结构体成员包含编号,书名,售价(数据类型自己设定)。写一个函数,包含两个形参,分别接收结构体数组的首地址和一个指定的售价,函数的功能为打印结构体数组中售价大于指定售价的书的信息。

#include <stdio.h>
#define N 3
typedef struct book
{
    char name[32];
    int id;
    int price;
} BOOK; //BOOK等同于struct book

BOOK b[N] = {
    {"shuihu", 1, 40},
    {"zyj zhuan", 2, 200},
    {"tuling zhuan", 3, 0}};

void bookPri(BOOK *p, int n)
{
    for (int i = 0; i < N; i++)
    {
        if (p->price > n)
            printf("%s %d %d\n", p->name, p->id, p->price);
        p++;
    }
}

int main(int argc, char const *argv[])
{
    bookPri(b, 6);
    return 0;
}

33.创建一个游戏英雄的结构体数组(5个元素), 结构体成员包含名称, 血量和价格。给出每个英雄信息,封装函数实现按价格从低到高打印英雄信息,(用冒泡排序)。封装函数实现修改英雄信息功能。

#include <stdio.h>

typedef struct hero
{
    char name[32];
    int hp;
    int price;
} HERO;

void sort(HERO *p, int n)
{
    HERO tmp;
    for (int i = 0; i < n - 1; i++)
    {
        for (int j = 0; j < n - i - 1; j++)
        {
            if (p[j].price > p[j + 1].price)
            {
                tmp = p[j];
                p[j] = p[j + 1];
                p[j + 1] = tmp;
            }
        }
    }
}

void change(HERO *p, int n)
{
    if (n <= 3)
        scanf("%s %d %d", p[n - 1].name, &p[n - 1].hp, &p[n - 1].price);
    else
        printf("err\n");
}

int main(int argc, char const *argv[])
{
    HERO a[3] = {
        {"zdl", 1, 50},
        {"zyj", 999, 100},
        {"xyb", 10000, 2}};

    change(a, 1);
    sort(a, 3);

    for (int i = 0; i < 3; i++)
        printf("%s %d %d\n", a[i].name, a[i].hp, a[i].price);

    return 0;
}

34.封装函数实现冒泡排序。

#include <stdio.h>

void fun(int *a, int n)
{
    for (int i = 0; i < n - 1; i++)
    {
        for (int j = 0; j < n - 1 - i; j++)
        {
            if (a[j + 1] > a[j])
            {
                int temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }

    for (int i = 0; i < 10; i++)
        printf("%d ", a[i]);
    printf("\n");
}

int main(int argc, char const *argv[])
{
    int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    fun(a, 10);

    return 0;
}

35.封装函数实现如下功能:输入任意两个数,返回两数之间(包括这两个数)偶数之和。

#include <stdio.h>

int fun(int a, int b)
{
    int sum = 0;
    if (a >= b)
    {
        int t = a;
        a = b;
        b = t;
    }
    for (int i = a; i <= b; i++)
    {
        if (i % 2 == 0)
            sum += i;
    }
    return sum;
}

int main(int argc, char const *argv[])
{
    int a, b, sum;
    scanf("%d %d", &a, &b);
    sum = fun(a, b);
    printf("%d\n", sum);

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2319215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git远程拉取和推送配置

Git进行远程代码拉取和推送时候提示配置user.name 和 user.email 背景&#xff1a;换新电脑后使用Git进行代码拉取和推送过程中&#xff0c;提示“Make sure you configure your “user.name” and “user.email” in git.”。这个配置针对git的正常使用仅需要配置一次&#xf…

基于SpringBoot+Vue3实现的宠物领养管理平台功能七

一、前言介绍&#xff1a; 1.1 项目摘要 随着社会经济的发展和人们生活水平的提高&#xff0c;越来越多的人开始关注并参与到宠物领养中。宠物已经成为许多家庭的重要成员&#xff0c;人们对于宠物的关爱和照顾也日益增加。然而&#xff0c;传统的宠物领养流程存在诸多不便&a…

调研报告:Hadoop 3.x Ozone 全景解析

Ozone 是 Hadoop 的分布式对象存储系统,具有易扩展和冗余存储的特点。 Ozone 不仅能存储数十亿个不同大小的对象,还支持在容器化环境(比如 Kubernetes)中运行。 Apache Spark、Hive 和 YARN 等应用无需任何修改即可使用 Ozone。Ozone 提供了 Java API、S3 接口和命令行接口…

【Linux】Makefile秘籍

> &#x1f343; 本系列为Linux的内容&#xff0c;如果感兴趣&#xff0c;欢迎订阅&#x1f6a9; > &#x1f38a;个人主页:【小编的个人主页】 >小编将在这里分享学习Linux的心路历程✨和知识分享&#x1f50d; >如果本篇文章有问题&#xff0c;还请多多包涵&a…

玩转物联网-4G模块如何快速将数据上传到巴法云(TCP篇)

目录 1 前言 2 环境搭建 2.1 硬件准备 2.2 软件准备 2.3 硬件连接 2.4 检查驱动 3 巴法云平台设备创建 3.1 创建账号 3.2 进入巴法云 3.3 获取联网参数 4 连接巴法云 4.1 打开配置工具读取基本信息 4.2 设置连接参数进行数据交互 4.2.1 建立TCP连接 4.2.2 订阅主题 4.2.3 发布信…

vue3+ts心得

1、Vue3核心 1、setup setup里弱化this&#xff0c;return可以返回函数&#xff0c;返回后页面也显示那个函数值 data里面是可以用this.来获取setup里的值&#xff0c;这个是单向的 vue3两个script标签不要觉得奇怪&#xff0c;一个是配置组合式api的&#xff0c;一个是配置组…

SQLark中如何进行数据筛选与排序

本文将为你介绍在 SQLark 中如何进行数据筛选与排序&#xff0c;掌握这些操作能够极大提升你的工作效率。 SQLark官网链接:www.sqlark.com 数据筛选 在数据库操作中&#xff0c;数据筛选是一项关键功能&#xff0c;它依据特定条件对数据进行过滤&#xff0c;帮助用户从海量数据…

VSTO(C#)Excel开发11:自定义任务窗格与多个工作簿

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

vscode查看文件历史git commit记录

方案一&#xff1a;GitLens 在vscode扩展商店下载GitLens 选中要查看的文件&#xff0c;vscode界面右上角点击GitLens的图标&#xff0c;选择Toggle File Blame 界面显示当前打开文件的所有修改历史记录 鼠标放到某条记录上&#xff0c;可以看到记录详情&#xff0c;选中O…

GaussDB备份数据常用命令

1、常用备份命令gs_dump 说明&#xff1a;是一个服务器端工具&#xff0c;可以在线导出数据库的数据&#xff0c;这些数据包含整个数据库或数据库中指定的对象&#xff08;如&#xff1a;模式&#xff0c;表&#xff0c;视图等&#xff09;&#xff0c;并且支持导出完整一致的数…

数学建模 第三节

目录 前言 一 钻井布局问题 第一问分析 第二问分析 总结 前言 这里讲述99年的钻井布局问题&#xff0c;利用这个问题讲述模型优化&#xff0c;LINGO&#xff0c;MATLAB的使用 一 钻井布局问题 这个是钻井布局的原题&#xff0c;坐标的位置为 a [0.50,1.41,3.00,3.37,3…

算法系列——有监督学习——3.逻辑回归

一、概述 逻辑回归是一种学习某个事件发生概率的算法。利用这个概率&#xff0c;可以对某个事件发生或不发生进行二元分类。虽然逻辑回归本来是二元分类的算法&#xff0c;但也可以用于三种类别以上的分类问题。为了理解这个算法&#xff0c;请思考以下例子。 你在回家的路上发…

深入理解traceroute命令及其原理

traceroute 是一个网络诊断工具&#xff08;Windows上叫tracert&#xff09;&#xff0c;用于显示数据包从本地主机到远程主机经过的路由&#xff08;跳数&#xff09;。它可以帮助您了解数据包在网络中的传输路径&#xff0c;以及每跳的延迟情况。这对于网络故障排除、分析网络…

前后端联调解决跨域问题的方案

引言 在前后端分离的开发模式中&#xff0c;前端和后端通常在不同的服务器或端口运行&#xff0c;这样就会面临跨域问题。跨域问题是指浏览器因安全限制阻止前端代码访问与当前网页源不同的域、协议或端口的资源。对于 Java 后端应用&#xff0c;我们可以通过配置 CORS&#x…

【vue2 + Cesium】相机视角移动+添加模型、模型点击事件

参考文章&#xff1a;vue2 使用 cesium 【第二篇-相机视角移动添加模型】 这篇文章在上篇文章的基础上继续开发&#xff0c;主要实现效果 相机视角移动 添加模型 点击事件 上篇文章&#xff1a;【vue2 Cesium】使用Cesium、添加第三方地图、去掉商标、Cesium基础配置、地…

【AI】AI编程助手:Cursor、Codeium、GitHub Copilot、Roo Cline、Tabnine

文章目录 一、基本特性对比二、收费标准三、私有部署能力1、Tabnine2、Roo Code 三、代码补全与自然语言生成代码四、安装独立的IDE安装插件安装 五、基本使用&#xff08;一&#xff09;Cursor&#xff08;二&#xff09;GitHub Copilot1、获取代码建议2.聊天1&#xff09;上下…

我的uniapp自定义模板

uniapp自定义模板 如有纰漏请谅解&#xff0c;以官方文档为准后面这段时间我会学习小程序开发的知识&#xff0c;会持续更新可以查看我的github&#xff0c;后续我会上传我的uniapp相关练习代码有兴趣的话可以浏览我的个人网站&#xff0c;我会在上面持续更新内容&#xff0c;…

【C++】动态规划从入门到精通

一、动态规划基础概念详解 什么是动态规划 动态规划&#xff08;Dynamic Programming&#xff0c;DP&#xff09;是一种通过将复杂问题分解为重叠子问题&#xff0c;并存储子问题解以避免重复计算的优化算法。它适用于具有以下两个关键性质的问题&#xff1a; 最优子结构&…

OpenCV计算摄影学(23)艺术化风格化处理函数stylization()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 风格化的目的是生成不以照片写实为目标的多种多样数字图像效果。边缘感知滤波器是风格化处理的理想选择&#xff0c;因为它们能够弱化低对比度区…

S32K144外设实验(三):ADC单通道连续采样(中断)

这次的实验比较简单&#xff0c;主要目的就是验证一下ADC的中断功能&#xff0c;思路是使用软件触发ADC的连续单通道采样&#xff0c;将采样值通过串口发送到上位机观察数是否正确。 其实官方并不推荐使用中断的方式&#xff0c;这种方式会占用大量的CPU资源&#xff0c;笔者安…