算法笔记|C/C++快速入门(第二章)|Codeup习题

文章目录

題目

http://codeup.cn/contest.php

2.2

例题1-1-1 按要求输出信息(1)

#include<stdio.h>
int main()
{
	printf("This is my first c program!\n");
	return 0;
}

例题1-1-2 按要求输出信息(2)

#include<stdio.h>
int main()
{
	printf("********************\n");
	printf("Very Good!\n");
	printf("********************\n");
	return 0;
}

例题1-2-1 求两个整数之和(1)

#include<stdio.h>
int main()
{
	int a=123,b=456,sum=a+b;
	printf("sum=%d\n",sum);
	return 0;
}

例题1-2-2 求两整数数之和(2)

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

例题3-5 求一元二次方程的根

#include<stdio.h>
#include<math.h>
int main()
{
	double a,b,c;
	double r1,r2;
	scanf("%lf %lf %lf",&a,&b,&c);
	r1=(-b+sqrt(b*b-4*a*c))/(2*a);
	r2=(-b-sqrt(b*b-4*a*c))/(2*a);
	printf("r1=%7.2lf\n",r1);
	printf("r2=%7.2lf\n",r2);
	return 0;
}

例题3-9 字符输入输出

#include<stdio.h>
#include<string.h>
int main()
{
	char str[4];
	gets(str);
	puts(str);
	return 0;
}

2.3

例题4-1 一元二次方程求根

#include<stdio.h>
#include<math.h>
int main()
{
	double a,b,c;
	double r1,r2;
	scanf("%lf %lf %lf",&a,&b,&c);
	if(b*b-4*a*c>=0)
	{
		r1=(-b+sqrt(b*b-4*a*c))/(2*a);
	r2=(-b-sqrt(b*b-4*a*c))/(2*a);
	printf("r1=%7.2lf\n",r1);
	printf("r2=%7.2lf\n",r2);
	}
	else
	{
		printf("No real roots!\n");
	}
	
	return 0;
}

例题4-2 比较交换实数值

#include<stdio.h>
int main()
{
	double a,b;
	scanf("%lf %lf",&a,&b);
	if(a>=b)
	{
		printf("%.2f %.2f\n",b,a);
	}
	else
	{
		printf("%.2f %.2f\n",a,b);
	}
	return 0;
}

例题4-3 比较交换3个实数值,并按序输出

#include<stdio.h>
int main()
{
	double a,b,c;
	scanf("%lf %lf %lf",&a,&b,&c);
	double temp;
	if(a<=b)
	{
		if(b>=c)
		{
			temp=c;
			c=b;
			b=temp;
			if(a>b)
			{
				temp=a;
				a=b;
				b=temp;
			}
		}
	}
	else
	{
		temp=a;
		a=b;
		b=temp;
		if(b>=c)
		{
			temp=c;
			c=b;
			b=temp;
			if(a>b)
			{
				temp=a;
				a=b;
				b=temp;
			}
		}		
	} 
	printf("%.2f %.2f %.2f\n",a,b,c);
	return 0;
}

习题4-4 三个整数求最大值

#include<stdio.h>
int main()
{
	int a,b,c;
	int max;
	scanf("%d %d %d",&a,&b,&c);
	max=a>b?a:b;
	max=max>c?max:c;
	printf("%d\n",max);
	return 0;
}

习题4-10-1 奖金计算

#include<stdio.h>
int main()
{
	double i,afd;
	scanf("%lf",&i);
	if(i<=100000)
	{
		afd=i*0.1;
	}
	else if(i<=200000)
	{
		afd=100000*0.1+(i-100000)*0.075;
	}
	else if(i<=400000)
	{
		afd=100000*0.1+100000*0.075+(i-200000)*0.05;
	}
	else if(i<=600000)
	{
		afd=100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03;
	}
	else if(i<=1000000)
	{
		afd=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015;		
	}
	else
	{
		afd=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.01;				
	}
	printf("%.2f\n",afd);
	return 0;
}

2.4

例题5-1-1 连续自然数求和

#include<stdio.h>
int main()
{
	int i=1,sum=0;
	while(i<=100)
	{
		sum+=i;
		i++;
	} 
	printf("%d\n",sum);
	return 0;
}

例题5-1-2 连续自然数求和

#include<stdio.h>
int main()
{
	int i=1,sum=0;
	do
	{
		sum+=i;
		i++;
	}while(i<=100);
	printf("%d\n",sum);
	return 0;
}

例题5-1-3 连续自然数求和

#include<stdio.h>
int main()
{
	int sum=0;
	for(int i=1;i<=100;i++)
	{
		sum+=i;
	}
	printf("%d\n",sum);
	return 0;
}

例题5-1-4 连续自然数求和

#include<stdio.h>
int main()
{
	int N,i=1,sum=0;
	scanf("%d",&N);
	while(1)
	{
		sum+=i;
		i++;
		if(i>N)
		{
			break;
		}
	}
	printf("%d\n",sum);
}

例题5-1-5 连续自然数求和

#include<stdio.h>
int main()
{
	int i=1,sum=0;
	while(1)
	{
		sum+=i;
		if(sum>1000)
		{
			break;
		}
		i++;
	}
	printf("%d\n",i);
}

例题5-6 矩阵输出

#include<stdio.h>
int main()
{
	int a[4][5]={1,2,3,4,5};
	int i,j;
	for(i=1;i<4;i++)
	{
		for(j=0;j<5;j++)
		{
			a[i][j]=(i+1)*a[0][j];
		}
	}
	
	for(i=0;i<4;i++)
	{
		for(j=0;j<5;j++)
		{
			printf("%3d",a[i][j]);
		}
		if(j<=4)
		{
			printf(" ");
		}
		else
		{
			printf("\n");
		}
	}
	return 0;
}

例题5-7 求圆周率pi的近似值

#include<stdio.h>
#include<math.h>
int main()
{
	double pi=0;
	double i=1,sign=1;
	double num=1/i;
	while(fabs(num)>=1e-6)
	{
		pi+=num;
		i+=2;
		sign=-sign;
		num=sign*(1/i);
	}
	printf("PI=%10.8f\n",4*pi);
	return 0;
}

例题5-8 Fibonacci数列

#include<stdio.h>
int main()
{
	int num[50]={1,1};
	int n;
	scanf("%d",&n);
	for(int i=2;i<n;i++)
	{
		num[i]=num[i-1]+num[i-2];
	}
	printf("%d\n",num[n-1]);
	return 0;
}

习题5-10 分数序列求和

#include<stdio.h>
int main()
{
	double a[20]={2},b[20]={1};
	double sum=0;
	int i;
	for(i=1;i<20;i++)
	{
		a[i]=a[i-1]+b[i-1];
		b[i]=a[i-1];
	}
	for(i=0;i<20;i++)
	{
		sum+=a[i]/b[i];
	}
	printf("%.6f\n",sum);
	return 0;
}

2.5

习题6-4 有序插入

#include<stdio.h>
int main()
{
	int a[10];
	int i,j;
	for(i=0;i<9;i++)
	{
		scanf("%d",&a[i]);
	}
	int num;
	scanf("%d",&num);
	for(i=0;i<10;i++)
	{
		if(num<a[i])
		{
			break;
		}
	}
	if(i==0)
	{
		for(j=9;j>0;j--)
		{
			a[j]=a[j-1];
		}
		a[0]=num;
	}
	else
	{
		for(j=9;j>i;j--)
		{
			a[j]=a[j-1];
		}
		a[i]=num;
	}
	for(i=0;i<10;i++)
	{
		printf("%d\n",a[i]);
	}
	return 0;
}

习题6-5 数组元素逆置

#include<stdio.h>
int main()
{
	int a[10];
	int i;
	for(i=0;i<10;i++)
	{
		scanf("%d",&a[i]);
	}
	int temp;
	for(i=0;i<5 ;i++)
	{
		temp=a[i];
		a[i]=a[9-i];
		a[9-i]=temp;
	}
	for(i=0;i<10;i++)
	{
		printf("%d\n",a[i]);
	}
	return 0;
}

习题6-6 杨辉三角

#include<stdio.h>
int main()
{
	int a[10][10];
	int n;
	scanf("%d",&n);
	int i,j;
	for(i=0;i<n;i++)
	{
		for(j=0;j<i+1;j++)
		{
			a[i][j]=1;
		}
	}
	for(i=2;i<n;i++)
	{
		for(j=1;j<i;j++)
		{
			a[i][j]=a[i-1][j-1]+a[i-1][j];
		}
	}
	for(i=0;i<n;i++)
	{
		for(j=0;j<i+1;j++)
		{
			if(j==0)
			{
				printf("%d",a[i][j]);
			}
			else
			{
				printf(" %d",a[i][j]);
			}
		}
		printf("\n");
	}
	return 0;
}

习题6-12 解密

#include<stdio.h>
#include<string.h>
int main()
{
	char str[100];
	gets(str);
	for(int i=0;i<strlen(str);i++)
	{
		if(str[i]>='a'&&str[i]<='z')
		{
			str[i]='z'-str[i]+'a';
		}
		else if(str[i]>='A'&&str[i]<='Z')
		{
			str[i]='Z'-str[i]+'A';
		}
		else
		{
			continue;
		}
	}
	puts(str);
	return 0;
}

习题6-13 字符串比较

#include<stdio.h>
#include<string.h>
int main()
{
	char str1[100],str2[100];
	gets(str1);
	gets(str2);
	int diff=0;
	for(int i=0;i<strlen(str1)&&i<strlen(str2);i++)
	{
		if(str1[i]==str2[i])
		{
			continue;
		}
		else
		{
			 diff=str1[i]-str2[i]; 
			 break;
		}
	}
	printf("%d\n",diff);
	return 0;
}

例题6-1 逆序输出数组元素

#include<stdio.h>
int main()
{
    int num[10];
    int i;
    for(i=0;i<10;i++)
    {
        scanf("%d",&num[i]);
    }
    for(i=9;i>=0;i--)
    {
        printf("%d\n",num[i]);
    }
    return 0;
}

例题6-2 数组求解Fibonacci数列问题

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

例题6-3 冒泡排序

#include<stdio.h>
int main()
{
	int a[10]={0};
	int i,j;
	int temp;
	for(i=0;i<10;i++)
	{
		scanf("%d",&a[i]);	
	}  
	for(i=0;i<10;i++)
	{
		for(j=1;j<10;j++)
		{
			if(a[j-1]>a[j])
			{
				temp=a[j-1];
				a[j-1]=a[j];
				a[j]=temp; 
			}
		}
	}
	for(i=0;i<10;i++)
	{
		printf("%d\n",a[i]);
	}
	return 0;
}

例题6-4 矩阵转置

#include<stdio.h>
int main()
{
	int a[2][3],b[3][2];
	int i,j;
	for(i=0;i<2;i++)
	{
		for(j=0;j<3;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	for(i=0;i<3;i++)
	{
		for(j=0;j<2;j++)
		{
			b[i][j]=a[j][i];
		}
	}
	for(i=0;i<3;i++)
	{
		for(j=0;j<2;j++)
		{
			printf("%d",b[i][j]);
			if(j<1)
			{
				printf(" ");
			}
		}
		printf("\n");
	}
	return 0;
}

例题6-9 字符串求最大值

#include<stdio.h>
#include<string.h>
#define MAX 100
int main()
{
	char str1[MAX],str2[MAX],str3[MAX];
	gets(str1);
	gets(str2);
	gets(str3);
	char *max;
	max=str1;
	if(strcmp(str2,max)>0)
	{
		max=str2;
	}
	if(strcmp(str3,max)>0)
	{
		max=str3;
	}
	puts(max);
	return 0;
}

2.6

习题7-5 字符串逆序存放

#include<stdio.h>
#include<string.h>
#define MAX 100 
char* Change(char str[],int len);
int main()
{
	char str[MAX];
	gets(str);
	int len=strlen(str);
	char *p=Change(str,len);
	puts(p);
	return 0;
}
char* Change(char str[],int len)
{
	char temp;
	for(int i=0;i<len/2;i++)
	{
		temp=str[i];
		str[i]=str[len-i-1];
		str[len-i-1]=temp;
	}
	return str;	
} 

习题7-7 复制字符串中的元音字母

#include<stdio.h>
#include<string.h>
#define MAX 100 
void Change(char str[],int len,char temp[]);
int main()
{
	char str[MAX],temp[MAX];
	gets(str);
	int len=strlen(str);
	Change(str,len,temp);
	puts(temp);
	return 0;
}
void Change(char str[],int len,char temp[])
{
	int j=0;
	for(int i=0;i<len;i++)
	{
		if(str[i]=='a'||str[i]=='e'||str[i]=='i'||str[i]=='o'||str[i]=='u')
		{
			temp[j++]=str[i];
		}
	}	
}

2.7

问题 A: C语言10.1

#include<stdio.h>
int main()
{
	int *pa,*pb,*p,a,b;
	scanf("%d %d",&a,&b);
	pa=&a;
	pb=&b;
	if(*pa<*pb)
	{
		p=pa;
		pa=pb;
		pb=p;
	}
	printf("%d %d\n",*pa,*pb);
	return 0;
}

问题 B: C语言10.2

#include<stdio.h>
int main()
{
	int *pa,*pb,*pc,*p,a,b,c;
	scanf("%d %d %d",&a,&b,&c);
	pa=&a;
	pb=&b;
	pc=&c;
	if(*pa<*pb)
	{
		p=pa;
		pa=pb;
		pb=p;
		if(*pb<*pc)
		{
			p=pb;
			pb=pc;
			pc=p;
			if(*pa<*pb)
			{
				p=pa;
				pa=pb;
				pb=p;
			}
		}
	}
	else
	{
		if(*pb<*pc)
		{
			p=pb;
			pb=pc;
			pc=p;
			if(*pa<*pb)
			{
				p=pa;
				pa=pb;
				pb=p;
			}
		}
	}
	printf("%d %d %d\n",*pa,*pb,*pc);
	return 0;
}

问题 C: C语言10.10

#include<stdio.h>
int main()
{
	const char *a = "I love China!";
    int n;
    scanf("%d",&n);
    printf("%s\n",a+n);
    return 0;
}

问题 D: C语言10.15

#include<stdio.h>
#include<string.h>
#define MAX 20
void swap(char **p1,char **p2);
int main()
{
    char str1[MAX],str2[MAX],str3[MAX];
    gets(str1);
    gets(str2);
    gets(str3);
    char *p1,*p2,*p3;
    p1=str1;
    p2=str2;
    p3=str3;
    if(strcmp(p1,p2)>0)
    {
        swap(&p1,&p2);
        if(strcmp(p2,p3)>0)
        {
            swap(&p2,&p3);
            if(strcmp(p1,p2)>0)
            {
                swap(&p1,&p2);
            }   
        }   
    }
    else
    {
        if(strcmp(p2,p3)>0)
        {
            swap(&p2,&p3);
            if(strcmp(p1,p2)>0)
            {
                swap(&p1,&p2);
            }   
        }
    }
    puts(p1);
    puts(p2);
    puts(p3);
    return 0;
}
void swap(char **p1,char **p2)
{
    char *temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
}

问题 E: C语言10.16

#include<stdio.h>
void Input(int *a);
void Operate(int *a);
void Output(int *a);

int main()
{
	int a[10];
	Input(a);
	Operate(a);
	Output(a);

	return 0;
}
void Input(int *a)
{
	int i;
	for(i=0;i<10;i++)
	{
		scanf("%d",a+i);
	}
}
void Operate(int *a)
{
	int min=a[0];
	int max=a[0];
	int i;
	int flagmin=0,flagmax=0;
	for(i=1;i<10;i++)
	{
		if(a[i]<min)
		{
			min=a[i];
			flagmin=i;
		}
		
		if(a[i]>max)
		{
			max=a[i];
			flagmax=i;
		}
	}
	int temp;
	temp=a[0];
	a[0]=a[flagmin];
	a[flagmin]=temp;
	temp=a[9];
	a[9]=a[flagmax];
	a[flagmax]=temp;
}
void Output(int *a)
{
	for(int i=0;i<10;i++)
	{
		if(i==0)
			printf("%d",*(a+i));
		else
			printf(" %d",*(a+i));
	}
	printf("\n");
}

2.8

问题 A: C语言11.1

#include<stdio.h>
#include<string.h>
#define MAX 100 
struct person {
    char name[20];
    int count;
}leader[3] = {{"Li",0},{"Zhang",0},{"Fun",0}};
int main()
{
 	int n;
 	char str[MAX][MAX];
 	scanf("%d",&n);
 	int i;
 	for(i=0;i<n;i++)
 	{
 		gets(str[i]);
		if(strcmp(str[i],"Li")==0)
		{
			leader[0].count++;
		}
		else if(strcmp(str[i],"Zhang")==0)
		{
			leader[1].count++;
		}	
		else if(strcmp(str[i],"Fun")==0)
		{
			leader[2].count++;
		}
		else
		{
			i--;
		}
	}
	for(i=0;i<3;i++)
	{
		printf("%s:%d\n",leader[i].name,leader[i].count);
	}
	return 0;
}

问题 B: C语言11.2

#include<stdio.h>
#define MAX 20
struct student {
    int num;
    char name[20];
    char sex;
    int age;
};
int main()
{
 	struct student stu[MAX];
 	int n;
 	scanf("%d",&n);
 	int i;
 	struct student *sp=stu;
 	for(i=0;i<n;i++)
 	{
 		scanf("%d %s %c %d",&(sp+i)->num,(sp+i)->name,&(sp+i)->sex,&(sp+i)->age);	
	}
	for(i=0;i<n;i++){
		printf("%d %s %c %d\n",(sp+i)->num,(sp+i)->name,(sp+i)->sex,(sp+i)->age);	
	}
	return 0;
}

问题 C: C语言11.4

#include<stdio.h>
#define MAX 100
struct people{
    int num;
    char name[10];
    char sex;
    char job;
    union {
        int clas;
        char position[10];
    }category;
};
int main()
{
	struct people peo[MAX];
 	int n;
 	scanf("%d",&n);
	int i;
	for(i=0;i<n;i++)
	{
		scanf("%d %s %c %c",&peo[i].num,peo[i].name,&peo[i].sex,&peo[i].job);
		if(peo[i].job=='s')
		{
			scanf("%d",&peo[i].category.clas);	
		}
		else if(peo[i].job=='t')
		{
			scanf("%s",peo[i].category.position);	
		}		
	}	
	for(i=0;i<n;i++)
	{
		printf("%d %s %c %c",peo[i].num,peo[i].name,peo[i].sex,peo[i].job);
		if(peo[i].job=='s')
		{
			printf(" %d\n",peo[i].category.clas);	
		}
		else if(peo[i].job=='t')
		{
			printf(" %s\n",peo[i].category.position);	
		}		
	}
	return 0;
}

问题 D: C语言11.7

#include<stdio.h>
#define MAX 100
struct student{
    int no;
    char name[19];
    int c1;
    int c2;
    int c3;
};
void input(struct student stu[]);
void print(struct student stu[]);
int main()
{
    struct student stu[5];
    input(stu);
    print(stu);
    return 0;
}
void input(struct student stu[])
{
    for(int i=0;i<5;i++)
    {
        scanf("%d %s %d %d %d",&(stu+i)->no,(stu+i)->name,&(stu+i)->c1,&(stu+i)->c2,&(stu+i)->c3);
    }
}
void print(struct student stu[])
{
    for(int i=0;i<5;i++)
    {
        printf("%d %s %d %d %d\n",(stu+i)->no,(stu+i)->name,(stu+i)->c1,(stu+i)->c2,(stu+i)->c3);
    }
}

问题 E: C语言11.8

#include<stdio.h>
#define MAX 10
struct student{
    int no;
    char name[19];
    int c1;
    int c2;
    int c3;
};
void input(struct student stu[]);
void print(struct student stu[]);
int main()
{
	struct student stu[MAX];
	input(stu);
	print(stu);
	return 0;
}
void input(struct student stu[])
{
	for(int i=0;i<MAX;i++)
	{
		scanf("%d %s %d %d %d",&(stu+i)->no,(stu+i)->name,&(stu+i)->c1,&(stu+i)->c2,&(stu+i)->c3);
	}
}
void print(struct student stu[])
{
	double sumc1,sumc2,sumc3,max;
	sumc1=0;
	sumc2=0;
	sumc3=0;
	max=stu->c1+stu->c2+stu->c3;
	int num=0;
	for(int i=0;i<MAX;i++)
	{
		sumc1+=(stu+i)->c1;
		sumc2+=(stu+i)->c2;
		sumc3+=(stu+i)->c3;
		int temp=(stu+i)->c1+(stu+i)->c2+(stu+i)->c3;
		if(temp>max)
		{
			max=temp;
			num=i;
		}		
	}
	sumc1/=MAX;
	sumc2/=MAX;
	sumc3/=MAX;
	printf("%.2f %.2f %.2f \n",sumc1,sumc2,sumc3);
	printf("%d %s %d %d %d\n",(stu+num)->no,(stu+num)->name,(stu+num)->c1,(stu+num)->c2,(stu+num)->c3);
}

2.10

问题 A: A+B 输入输出练习I

#include<stdio.h>
int main()
{
	int a,b;
	while(scanf("%d%d",&a,&b)!=EOF)
	{
		printf("%d\n",a+b);
	}
	return 0;
}

问题 B: A+B 输入输出练习II

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

问题 C: A+B 输入输出练习III

#include<stdio.h>
int main()
{
	int a,b;
	while(1)
	{
		scanf("%d%d",&a,&b);
		if(a==0&&b==0)
		{
			break;
		}
		printf("%d\n",a+b);
	}
	return 0;
}

问题 D: A+B 输入输出练习IV

#include<stdio.h>
int main()
{
	int N;
	int sum;
	int i,x;
	while(1)
	{
		scanf("%d",&N);
		sum=0; 
		i=0;
		if(N==0)
		{
			break;
		}
		else
		{
			while(i<N)
			{
				scanf("%d",&x);
				sum+=x;
				i++;
			}
		}
		printf("%d\n",sum);
	}
	return 0;
}

问题 E: A+B 输入输出练习V

#include<stdio.h>
int main()
{
	int N;
	scanf("%d",&N);
	int i=0,j;
	int sum,x,M;
	while(i<N)
	{
		scanf("%d",&M);
		j=0;
		sum=0;
		while(j<M)
		{
			scanf("%d",&x);
			sum+=x;
			j++;
		}
		printf("%d\n",sum);
		i++;
	}
	return 0;
}

问题 F: A+B 输入输出练习VI

#include<stdio.h>
int main()
{
	int sum,i,x;
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		i=0;
		sum=0;
		while(i<n)
		{
			scanf("%d",&x);
			sum+=x;
			i++;
		}
		printf("%d\n",sum);
	}
	return 0;
}

问题 G: A+B 输入输出练习VII

#include<stdio.h>
int main()
{
	int a,b;
	while(scanf("%d%d",&a,&b)!=EOF)
	{
		printf("%d\n\n",a+b);
	}
	return 0;
}

问题 H: A+B 输入输出练习VIII

#include<stdio.h>
int main()
{
	int N;
	scanf("%d",&N);
	int i=0,j;
	int sum,x,M;
	while(i<N)
	{
		scanf("%d",&M);
		j=0;
		sum=0;
		while(j<M)
		{
			scanf("%d",&x);
			sum+=x;
			j++;
		}
		printf("%d\n",sum);
		i++;
		if(i<N)
		{
			printf("\n");
		}
	}
	return 0;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《算法笔记》是由胡凡编写的一本关于算法学习的教材,它最初以C/C++为主要编程语言。这本教材主要面向想要学习算法的初学者,以及希望进一步提升算法能力的人群。 《算法笔记》的内容广泛而且深入,涵盖了很多算法的基础知识和主要思想,如递归、排序、查找、图论、动态规划等。通过学习这本教材,读者可以掌握这些算法的基本原理和实现方法,提高解决实际问题的能力。 该教材有几个特点:首先,它提供了很多例子和习题,帮助读者巩固所学的知识;其次,它介绍了很多常用的数据结构,如数组、链表、栈、队列等,读者可以通过学习这些数据结构更好地理解和应用算法;最后,它还介绍了一些高级主题,如高级数据结构、算法优化等,这些内容对于进一步提升算法水平非常有帮助。 《算法笔记》是一本入门级的教材,因此在阅读时需要一些基本的编程知识和逻辑思维能力。该教材的语言简洁明快,适合作为学习参考书,同时也可以作为算法竞赛的辅助教材。 总而言之,《算法笔记》是一本很好的算法学习教材,它以C/C++为编程语言,全面介绍了算法的基本知识和常用方法,适合想要学习算法的初学者。无论是学术研究还是实际应用,阅读《算法笔记》都能提升算法能力,并为进一步学习和应用算法打下坚实的基础。 ### 回答2: 《算法笔记 胡凡 c/c 快速入门pdf》是一本介绍算法和C/C++编程语言的入门书籍。该书的作者是胡凡,它主要规划了算法的学习路径以及基本的C/C++编程语言。这本书适合初学者快速入门,对于想要系统学习算法和C/C++编程的人来说是一本不错的选择。 这本书的内容非常系统和全面。它以算法和数据结构为基础,包括基本排序、查找、图论等算法的介绍和实践,让读者能够快速掌握这些算法的原理和实现方法。同时,它还介绍了C/C++语言的基础知识和编程技巧,帮助读者理解和运用这些知识。 书中每章都有一些练习题,帮助读者巩固所学的知识。同时,每个章节末尾还提供了一些进阶的题目和参考答案,供读者深入学习和自我检测。这样的设计能够帮助读者更好地理解和掌握所学的内容。 总的来说,《算法笔记 胡凡 c/c 快速入门pdf》是一本很好的算法和C/C++入门书籍。它能够帮助读者快速了解算法和数据结构的基础知识,并学会使用C/C++语言进行编程。无论是对于想要入门算法和C/C++编程的初学者,还是已经有一定基础的读者,这本书都是一个很好的选择。 ### 回答3: 《算法笔记:胡凡C/C++快速入门PDF》是一本很棒的入门算法书籍。这本书主要介绍了常用的数据结构与算法,并通过C/C++语言来实现这些算法。 首先,这本书非常适合算法初学者。它从基础的数据结构开始讲解,如数组、链表、栈和队列,然后逐渐引入更复杂的数据结构,如二叉树、图和堆。此外,书中还介绍了常用的排序和查找算法,如冒泡排序、快速排序、二分查找等。每个算法都配有具体的代码实现和详细的解释,帮助读者理解算法的原理和应用。 其次,这本书的学习资料丰富。书中提供了很多例题和习题,读者可以通过实践来巩固所学的知识。此外,书中还介绍了一些常见的算法优化技巧和设计思路,提供了一些高效解决问题的方法和思考方式。 最后,这本书的编写风格简明易懂。作者通过清晰的语言和简洁的代码,将复杂的算法问题简化为易于理解的部分。不论是对于算法初学者还是对于有一定编程基础的读者,这本书都是一本很好的学习资料。 总而言之,《算法笔记:胡凡C/C++快速入门PDF》是一本很好的入门算法书籍。它适合初学者学习和理解常用的数据结构与算法,通过具体的代码实现和详细的解释帮助读者掌握算法的原理和应用。无论是编程初学者还是有一定基础的读者,都可以从这本书中获得丰富的知识和实践经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值