中国大学慕课 C语言翁恺 学习笔记

第二章

变量的赋值与初始化

<类型名称><变量名称>=<初始值>;

int price = 0;
int amount =100;
//组合变量定义的时候,也可以在这个定义中单独给单个变量赋初值
int price = 0,amount = 100;
s
//C99的写法与ANSIC的不同在于变量的要在开头的地方就进行定义

//C99
int price = 0;
printf("Please enter price:");
scanf("%d",&price);
int change = 100 - price;
printf("return your money:%d\n",change);

//ANSIC
int price = 0;
int change = 0;s
printf("Please enter price:");
scanf("%d",&price);
change = 100 - price;
printf("return your money:%d\n",change);

常量、变量、浮点数

const int AMOUNT = 100
/* C99的写法
	const是一个修饰符,加在int前面,表示这个变量一旦被初始化就不能再次修改了
*/

#include<stdio.h>
    int main()
{
    int a;
    int b;
    printf("Please enter two number: ");
    scanf("%d %d",&a,&b);
    printf("%d + %d = %d\n",a, b , a+b);
    return 0;
}

/*任何两个int 相乘除得到的结果也只会是整数
%f */
#include<stdio.h>
int main()
{
	printf("请分别输入身高的英尺和英寸,"
	"如输入\"5 7\"表示5英尺7英寸:");
	int foot;
	int inch;
	sacnf("%d %d",&foot,&inch);
	printf("身高是%f米。\n",
	((foot + inch /12.0)* 0.3048));
	return 0;
}

#include<stdio.h>
int main()
{
	printf("请分别输入身高的英尺和英寸,"
	"如输入\"5 7\"表示5英尺7英寸:");
	double foot;
	double inch;
	sacnf("%lf %lf", &foot, &inch);
	printf("身高是%f米。\n",
		((foot + inch /12.0)* 0.3048));
	return 0;
}
/*
整数输入出用%d
带小数点的数输入用%lf 输出用%f
*/

表达式

//计算时间差
#include<stdio.h>
#include <stdlib.h>
int main()
{
    int hour1 , minute1;
    int hour2 , minute2;
    
    scanf("%d %d",&hour1,&minute1);
    scanf("%d %d",&hour2,&minute2);
    
    int t1 = hour1 * 60 + minute1;
    int t2 = hour2 * 60 + minute2;
    
    int t = t2-t1;
    
    printf("时间差是%d小时%d分。",t/60,t%60);
    system("pause");
    return 0;
}

#include<stdio.h>
#include<stdlib.h>

/*
计算银行复利
1年的定期利率是3.3%连续自动转存3年,所得就是 x(1+3.3%)^3

*/
int main()
{
    int x;
    scanf("%d",&x);
    double amount = x*(1+0.033)*(1+0.033)*(1+0.033);
    printf("%f",amount);
    system("pause");
    return 0;
}

交换变量

#include<stdio.h>
int main()
{
    int a = 5;
    int b = 6;
    int t;
    t=a;
    a=b;
    b=t;
    printf("a=%d,b=%d\n",a,b);
    return 0;
    
}

复合赋值

1.赋值符号的优先级最小,在复合赋值当中,会先把右边算式当中的运算先进行运算,然后再赋值给左边的变量

2.前置和后置是不一样的,++a说明a先加1再赋值,而a++是先赋值再加1

第三章

做判断

#include<stdio.h>
#include <stdlib.h>
int main()
{
    int hour1 , minute1;
    int hour2 , minute2;
    
    scanf("%d %d",&hour1,&minute1);
    scanf("%d %d",&hour2,&minute2);
    
    int ih = hour2 - hour1;
    int im = minute2 - minute1;
    
    if(im<0){
        im = 60 + im;
        ih--;
    }
    
    printf("时间差是%d小时%d分。\n",ih/60,im%60);
    system("pause");
    return 0;
}

优先级

所有的关系运算符的优先级比算术运算的低,但是比赋值运算的高。

7>=3+4  int r = a>0
//第一个式子先加法然后进行比较,第二个先比较再赋值

判断是否相等的==和!=的优先级比其他的要低,而连续的关系运算是从左到右进行的

5>3==6>4 //先比较再看是否相等
6>5>4 // 6>5》1>4》0
    

if

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QbwlOSsb-1684216628056)(C:\Users\dean ambrose\AppData\Roaming\Typora\typora-user-images\1666680325977.png)]

有没有大括号的情况下是不一样的

嵌套的if-else

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);

    int max = 0;
    if (a>b)
    {
        if(a>c){
            max=a;
        }else{
            max=c;
        }
    } else{
        if (b>c)
        {
            max = b;
        }else
        {
            max = c;
        } 
    }
    printf("The max is %d\n",max);
    system("pause");
    return 0;

}

级联的if-else if-if

分段函数

f(x)= -1;x<0

f(x)= 0;x=0

f(x) =2x;x>0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MEl4As7C-1684216628057)(C:\Users\dean ambrose\AppData\Roaming\Typora\typora-user-images\1666681835899.png)]

#include<stdio.h>
int main()
{
    int x;
    scanf("%d",&x);
    
    int f=0;
    if(x<0){
        f=-1;
    }else if(x==0){
        f=0;
    }else if(x>5){
        f=2 * x;
    }else{
        f = 3*x;
    }
    printf("%d\n",f);
    
    return 0;
}

if-else的常见错误

1.忘记添加大括号

2.if后面不要加分号 if(age>60);这种写法是错误的

多路分支

switch-case

控制表达式只能是整数类型的结果

常量可以是常数也可以是常数计算的表达式

case只是路牌,只有break才能跳出break

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lPOgAb1l-1684216628058)(C:\Users\dean ambrose\AppData\Roaming\Typora\typora-user-images\1666683521879.png)]

第四章

循环-输入一个数判断这个数是几位数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XHo1RPEe-1684216628058)(C:\Users\dean ambrose\AppData\Roaming\Typora\typora-user-images\1666684218518.png)]

但是如果是一个贼长的数字呢??

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int x;
    int n=0;
    scanf("%d",&x);
    n++;
    x /=10;
    while (x>0)
    {
        n++;
        x /=10;
    }
    printf("%d\n",n);
    system("pause");
    return 0;
    
}

do-while循环

do-while在进入循环的时候不做检查,而是在执行完一轮循环体的代码之后,再来检查循环的条件是否满足,如果满足再继续循环体的内容,否则就退出。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gq6NVUxU-1684216628059)(C:\Users\dean ambrose\AppData\Roaming\Typora\typora-user-images\1666686165023.png)]

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int x;
    int n = 0;
    scanf("%d",&x);
    do
    {
        x /=10;
        n++;
    } while (x>0);
    printf("%d",n);
    system("pause");
    return 0;
}

循环计算

在计算之前用其他的变量保留x的值,后面输出再用那个变量代替

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int x;
    int ret = 0;
    //scanf("%d",&x);
    x=128;
    int t =x;
    while (x>1)
    {
        x /= 2;
        ret ++;
    }
    printf("log2 of %d is %d.",t,ret);
    system("pause");
    return 0;
}


改变条件初始值ret等于-1,while条件判断x>0

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int x;
    int ret = -1;
    //scanf("%d",&x);
    x=128;
    int t =x;
    while (x>0)
    {
        x /= 2;
        ret ++;
    }
    printf("log2 of %d is %d.",t,ret);
    system("pause");
    return 0;
}


将n–与输出的语句换顺序,会有不一样的结果变化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DoyN7pFB-1684216628060)(C:\Users\dean ambrose\AppData\Roaming\Typora\typora-user-images\1666688488732.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mfy0nanN-1684216628061)(C:\Users\dean ambrose\AppData\Roaming\Typora\typora-user-images\1666688542188.png)]

猜数游戏

//让计算机想一个数然后用户猜,每输入一个数就告诉用户是大了还是小了直到猜中,最好告诉用户猜了多少次

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main()
{
    srand(time(0));
    int number = rand()%100+1;
    int count = 0;
    int a = 0;
    printf("Already had one number from 1 to 100");
    do
    {
        printf("Please guess this number from 1 to 100:");
        scanf("%d",&a);
        count++;
        if (a > number )
        {
            printf("your number was too large ");
        }else if (a < number)
        {
            printf("your number was too small ");
        }
        
        
    } while (a != number);
    printf("so good ,you have used %d times solove the answer \n",count);
    system("pause");
    return 0;
}

算平均数

#include<stdio.h>
#include<stdlib.h>

int main(){
    int number;
    int sum = 0;
    int count = 0;
    
    scanf("%d",&number);
    while (number != -1)
    {
        sum += number;
        count ++;
        scanf("%d",&number);
    }
    
    printf("%f\n", 1.0*sum/count);
    system("pause");
    return 0;
}

整数逆序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-be9ddM3H-1684216628062)(C:\Users\dean ambrose\AppData\Roaming\Typora\typora-user-images\1666699268415.png)]

这道题的灵魂在于 ret*10的巧妙

倒序输出12345

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int x;
    //scanf("%d",&x);调试
    x=12345;
    int digit;
    int ret = 0;

    while (x > 0)
    {
        digit = x%10;
        //printf("%d",digit);
        ret = ret*10 + digit;
        printf("x=%d,digit=%d,ret=%d\n",x,digit,ret);
        x /= 10;
    }
    printf("%d",ret);
    system("pause");
    return 0;
    
}

输出700》》007,保留了00

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int x;
    //scanf("%d",&x);调试
    x=700;
    int digit;
    int ret = 0;

    while (x > 0)
    {
        digit = x%10;
        printf("%d",digit);
        ret = ret*10 + digit;
        //printf("x=%d,digit=%d,ret=%d\n",x,digit,ret);
        x /= 10;
    }
    printf("%d",ret);
    system("pause");
    return 0;
    
}

第五章

for循环

阶乘的计算

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int n;
    scanf("%d",&n);
    int fact = 1;

    int i = n;

    /*for ( i = 1; i <= n; i++)
    {
        fact *= i;
    }*/
    for ( ; n>1; n--)
    {
        fact *= n;
    }
    
    printf("%d!=%d\n",i,fact);

    system("pause");
    return 0;

}

Tips for choose

如果有固定的次数就用for

如果必须执行一次就用do while 循环

其他情况下用while

for(i=0;i<5;i++{printf("i=%d",i);}
printf("\n最后i=%d\n",i);
//结果:i=0 i=1 i=2 i=3 i=4 循环5轮 最后 i=5


for(i=1;i<=5;i++{printf("i=%d",i);}
printf("\n最后i=%d\n",i);
//结果: i=1 i=2 i=3 i=4 i=5 循环5轮 最后 i=6

循环控制

求素数

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int x;
    scanf("%d", &x);

    int i;
    int isPrime = 1; //是素数 证伪
    for( i = 2; i<x ; i++){
        if (x % i == 0)
        {
            isPrime = 0;
            break;
        }
    }
    if ( isPrime = 1)
    {
        printf("是素数\n");
    }else{
        printf("不是素数\n");
    }
    system("pause");
    return 0;
}

关于break与continue

break意为直接跳出循环,continue表示跳过这一轮循环接着走下一轮的循环。

嵌套的循环

如何求出100以内的素数??

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int x;

    for ( x = 1; x<=100; x++)
    {
        int i;
        int isPrime = 1;
        for ( i = 2; i < x; i++)
        {
            if (x%i==0)
            {
                isPrime = 0;
                break;
            }
            
        }
        if (isPrime==1)
        {
            printf("%d ",x);
        }
    }
    system("pause");
    return 0;
    
}

列出正整数前50个素数

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int x;
    int cnt = 0;

    //for (x=1;cnt<50;x++){
    x = 1;
    while (cnt < 50)
    {
        int i;
        int isPrime = 1;
        for ( i = 2; i < x; i++)
        {
            if (x % i == 0)
            {
                isPrime = 0;
                break;
            }
        }
        if (isPrime ==1)
        {
            cnt ++;
            printf("%d\t",x);
            if ( cnt %5 == 0)
            {
                printf("\n");
            }
            
        }
        x++;
        
    }
    system("pause");
    return 0;
}

从嵌套的循环中跳出

break与continue只能对它所在的那层循环做

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int x;
    int one ,two ,five;
    int exit = 0;

    scanf("%d",&x);
    for (one  = 1; one < x*10; one++){
        for ( two =1;two < x*10/2;two++){
            for (five =1 ;five < x*10/5;five++){
                if (one + two*2 + five*5 == x*10){
                    printf("可以用%d个1角加%d个2角加%d个五角得到%d元\n",
                    one,two,five,x);
                    exit = 1;
                    break;
                }
            }
            if (exit == 1) break;
        }
        if (exit == 1) break;

        
    }
    system("pause");
    return 0;
    
}

前n项求和

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UdTAvyTH-1684216628062)(…/TyPircture/1667024789765.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iYxYbAnq-1684216628063)(…/TyPircture/1667025363070.png)]

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int n;
    int i;
    double sum = 0.0;
    //int sign =1;
    double sign = 1.0;

    scanf("%d",&n);
    for (i = 1;i<=n; i++){
        sum += sign/i; //sum+=sign*1.0/i
        sign = -sign;
    }
    system("pause");
    return 0;
}

整数分解 integer factorization

输入:13425 输出:1 3 4 2 5

视频5.3.2

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int x;
    scanf("%d",&x);

    x=10;
    int mask = 1;
    int t = x;
    while (t>9)
    {
        t /= 10;
        mask *=10;
    }
    printf("x=%d, mask=%d\n",x,mask);
    do{
        int d = x / mask;
        printf("%d",d);
        if (mask > 9)
        {
            printf(" ");
        }
        x %= mask;
        mask /= 10;
        
    }while (mask > 0);
    printf("\n");
        
    system("pause");
    return 0;
    
}

求最大公约数

枚举法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PJ5sWwIj-1684216628064)(…/TyPircture/1667029855151.png)]

辗转相除法

#include<stdio.h>
#include<stdlib.h>

/*
    如果b等于0,计算结束,a就是最大公约数
    否则,计算a除以b的余数,让a等于b,而b等于那个余数;回到第一步

    a   b   t
    12  18  12
    18  12  6
    12  6   0
    6   0
*/

int main()
{
    int a,b;
    int t;
    scanf("%d %d", &a, &b);
    a=12;b=18;
    while (b!= 0){
        t = a%b;
        a=b;
        b=t;
        printf("a=%d,b=%d,t=%d\n",a,b,t);
    }
    printf("gcd=%d\n",a);

    system("pause");
    return 0;
}

第六章

编程练习解析

给定条件的整数集合

题目:给定不超过6的正整数A,考虑从A开始连续的4个数字,请输出所有由它们组成的无重复数字的3位数

从小到大,每行6个,空格分开,行末不要有空格

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int a;
    //scanf("%d", &a); 调试
    a=6;
    int i,j,k;
    int cnt = 0;

    i=a;
    while (i<=a+3){
        j = a;
        while (j<=a+3){
            k=a;
            while (k<=a+3){
                if (i!=j && i!=k && j!=k ) {
                cnt++;
                printf("%d%d%d",i,j,k);
                if (cnt==6)
                {
                    printf("\n");
                    cnt=0;
                }else{
                    printf(" ");
                }
                }
                k++;
            }
            j++;
            
        }
        i++;
        
    }
    
    system("pause");
    return 0;
    
}

水仙花数

题目:指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身,153 =1的3次方+5的3次方+3的3次方

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int n;
    //scanf("%d",&n);
    n=3;
    int first = 1;
    int i = 1;
    while ( i<n ){
        first *= 10;
        i ++;
    }
    printf("first=%d\n",first);
    //遍历100-999
    i = first; 
    while ( i<first*10){
        int t = i; //定义一个变量t去拆解,保留变量i
        int sum = 0;
        do{
            int d = t%10;
            t/=10;
            int p =d; //int p = 1;
            int j =1; //int j = 0;s
            while (j<n){
                p *=d;
                j++;
            }
            sum += p;
        }while(t>0);
        if ( sum==i){
            printf("%d\n",i);
        }
        i++;
    }
    system("pause");
    return 0;
}

九九乘法表

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int n;
    scanf("%d", &n);
    n=9;
    int i ,j;
    i = 1;
    while (i<=n)
    {
        j = 1;
        while ( j<=i){
            printf("%d*%d=%d",j,i,i*j);
            if (i*j <10){
                printf("   ");
            }else {
                printf("  ");
            }
            j++;
        }
        printf("\n");
        i++;
    }
    
    system("pause");
    return 0;
}

统计素数并求和

//统计给定整数M和N闭区间内素数的个数并且对他们求和
#include<stdio.h>
#include<stdlib.h>

int main()
{
    int m,n;
    int i;
    int cnt = 0;
    int sum = 0;

    scanf("%d %d", &m, &n);
    if (m==1)
    {
        m=2;
    }

    for (i=m;i<=n;i++){
        int isPrime = 1;
        int k;
        for (k=2;k<i-1;k++){
            if (i%k==0){
                isPrime = 0;
                break;
            }
        }
        //判断i是否为素数
        if (isPrime){
            //printf("%d",i);
            cnt++;
            sum+=i;
        }
    }

    printf("%d %d\n",cnt,sum);
    system("pause");
    return 0;
    
}

C语言的数据类型

整数:char(8个bit)、short、int、long、long long

浮点数:float、double、long double

输入时int用%d,long用%ld(长整型),double用%lf

所表达的数的范围:char<short<int<float<double

int就是用来表达寄存器的

sizeof

一个运算符,给出某个类型或变量在内存中所占据的字节数

静态运算符,它的结果在编译时刻就决定了

不要在sizeof的括号内做运算,这些运算它不会做的

unsigned

unsigned char c = 255 //表示这个数不以补码的形式来表达负数
char c = 255 //输出为-1
   //表达的负数会扩大一倍,但不能表达负数了
    //扩展数字能表达的范围,初衷是为了做纯二进制运算,为了最高位的1不起作用

整数越界

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ZBHbI0b-1684216628065)(…/TyPircture/1667207554870.png)]

图一为char 图二为unsign char

整数类型的选择

没啥特殊需要就只用int 就行了

浮点数

float 输入%f 输出%f %e(科学计数法)

double 输入%lf 输出%f %e

输出精度

printf("%.3f\n",-0.0049)
printf("%.30f\n",-0.0049)
printf("%.3f\n",-0.00049)

char类型

char c
scanf("%c",&c); //1
printf("c=%d\n",c); //49 
printf("c='%c'\n",c); //'1'
========================================
int i
char c
scanf("%d",&i); //1
c=i
printf("c=%d\n",c); //1
printf("c='%c'\n",c); //' '
=======================================

//混合输入
int i;char c;
scanf("%d %c",&i,&c);
printf("i=%d,c=%d,c='%c'\n",i,c,c);
12 1
    12 49 '1'
12a
    12 97 'a'
    
    
//不带空格的
scanf("%d%c",&i,&c);
printf("i=%d,c=%d,c='%c'\n",i,c,c);
12 1
    12 32(空格的意思) ' '
12a
    12 97 'a'
12   1
    12 32 ' '
    
=======================================
char c; char d;
c=1; d='1';
printf("c=%d\n",c); //c=1
printf("d=%d\n",d); //d=49

在百分号之后没有空格意思是整数只读到整数结束为止

类型转换

自动类型转换

当运算符的两边出现不一致的类型时会自动转换成较大的类型

对于printf,任何小于int的类型会被转换成int,float会被转换成double

char>short>int>long>long long

int>float>double

强制类型转换

(类型)值

eg:(int)10.2 (short)32

只是从那个变量计算出了一个新的类型的值,它并不改变那个变量,无论是值还是类型都不改变

强制类型转换的运算优先级比四则运算高

double a = 1.0;
double b = 2.0;
int i = (int)(a/b);

int a = 5;
int b = 6;
double d = (double)(a/b);

逻辑运算

如何表达数学中x属于(4,6)或x属于【4,6】

x>4&&x<6

判断一个字符c是否为大写字母:c>=‘A’&&c<=‘Z’

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h1z7r6gk-1684216628066)(…/TyPircture/1667216546665.png)]

条件运算符与逗号运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gfnABPlZ-1684216628067)(…/TyPircture/1667216658642.png)]

int i
i= 3+4,5+6;
printf
    //输出的7
    i=3+4,5+6;
	//输出的是11

nf(“%d”,&i); //1
c=i
printf(“c=%d\n”,c); //1
printf(“c=‘%c’\n”,c); //’ ’

//混合输入
int i;char c;
scanf(“%d %c”,&i,&c);
printf(“i=%d,c=%d,c=‘%c’\n”,i,c,c);
12 1
12 49 ‘1’
12a
12 97 ‘a’

//不带空格的
scanf(“%d%c”,&i,&c);
printf(“i=%d,c=%d,c=‘%c’\n”,i,c,c);
12 1
12 32(空格的意思) ’ ’
12a
12 97 ‘a’
12 1
12 32 ’ ’

=======================================
char c; char d;
c=1; d=‘1’;
printf(“c=%d\n”,c); //c=1
printf(“d=%d\n”,d); //d=49


**在百分号之后没有空格意思是整数只读到整数结束为止**





###  类型转换

####  自动类型转换

*当运算符的两边出现不一致的类型时会自动转换成较大的类型*

*对于printf,任何小于int的类型会被转换成int,float会被转换成double*

char>short>int>long>long long

int>float>double



####  强制类型转换

(类型)值

eg:(int)10.2	(short)32

只是从那个变量计算出了一个新的类型的值,它并不改变那个变量,无论是值还是类型都不改变

强制类型转换的运算优先级比四则运算高

~~~c
double a = 1.0;
double b = 2.0;
int i = (int)(a/b);

int a = 5;
int b = 6;
double d = (double)(a/b);
~~~

 



###  逻辑运算

如何表达数学中x属于(4,6)或x属于【4,6】

x>4&&x<6

判断一个字符c是否为大写字母:c>='A'&&c<='Z'

[外链图片转存中...(img-h1z7r6gk-1684216628066)]



##  条件运算符与逗号运算符



[外链图片转存中...(img-gfnABPlZ-1684216628067)]

~~~c
int i
i= 3+4,5+6;
printf
    //输出的7
    i=(3+4,5+6);
	//输出的是11
~~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值