您的位置:首页 > 娱乐 > 明星 > 大连百度搜索排名优化_国家653工程_迅雷bt磁力链 最好用的搜索引擎_温州网站建设

大连百度搜索排名优化_国家653工程_迅雷bt磁力链 最好用的搜索引擎_温州网站建设

2025/2/26 7:56:15 来源:https://blog.csdn.net/weixin_71221953/article/details/143042346  浏览:    关键词:大连百度搜索排名优化_国家653工程_迅雷bt磁力链 最好用的搜索引擎_温州网站建设
大连百度搜索排名优化_国家653工程_迅雷bt磁力链 最好用的搜索引擎_温州网站建设

如果对你有帮助,请点个免费的赞吧,谢谢汪。(点个关注也可以!)\n\n如果以下内容需要补充和修改,请大家在评论区交流~

思维导图

 

927e3db32e822b21209177080085e9d8.jpeg

1.数组

由一个或多个相同的数据类型组成的集合

特点

数据类型相同

内存连续

1.1一维数组

格式

存储类型 数据类型 数组名[元素个数]

int arr[5];

[n]n:只有在定义时,表示元素个数;其他任何情况下都表示索引

访问

数组名[索引]索引从0开始

a[0] 第一个元素

a[4] 第五个元素

int a[5]={5,6,7,8,9};

printf("%d %d %d\n",a[0],a[2],a[4]);

char b[5]={'h','e','l','l','o'};//数据类型保持一致

数组名

数组名也是数组的首地址,是一个地址常量,不能为左值(=左边),不能被修改

int a[5]={5,6,7,8,9};

printf("%p %p\n",a,&a[0]); //地址编号一样

数组大小

int a[5]={5,6};

数据类型*元素个数 4*5=20

sizeof

printf("%ld\n",sizeof(a));

元素个数:决定数组最多存储数据个数

初始化:

1. 全部初始化

int a[5]={5,6,7,8,9};

2. 部分初始化

int a[5]={5,6};//56000

未赋值的部分,值默认为0

int a[5]={}; //00000

3. 未初始化

inta[5];

值为随机值

a[0]=5;

a[1]=6;

循环遍历

int a[5]={};

for(int i=0;i<5;i++)

scanf("%d",&a[i]);

for(int i=0;i<5;i++)

printf("%d\n",a[i]);

打印出输入的这五个数中的最大值

思路:输入完五个数后,假设第一个数最大,暂时为max

把max和剩下的四个依次比较

比较过程中遇见了更大值,对max重新赋值

比较结束,打印max

 

426f5eb5c249704f42d007f51059913c.png

问题:打印出输入的这五个数中的最大值,及位置,亲们可以试试

 

 

内存分配

内存连续,地址编号差值取决于数据类型的大小

char 地址差1

int 地址差4

 

清0函数:

1.bzero

#include <strings.h>

void bzero(void *s, size_t n);

功能:数组元素清零

参数:s:要清零的数组的首地址 n:字节大小

返回值:无

2.memset

#include <string.h>

void *memset(void *s, int c, size_t n);

功能:数组元素清零

参数:s:要清零的数组的首地址 n:字节大小c:要设置的值,设置为0

返回值:清零的数组的首地址

1.2字符数组

用来存储字符串,用" "包裹,以'\0'为结束标志

输入输出

1. for

for(int i=0;i<5;i++)

scanf("%c",&b[i]);

for(int i=0;i<5;i++)

printf("%c",b[i]);

2. %s

char b[6]={};
scanf("%s",b);
printf("b:%s\n",b);
//输入helloworld时,只有hello赋值成功
//scanf默认遇到空格或回车认为赋值结束
//	scanf("%[^\n]",b);

3. gets puts

get:

char *gets(char *s);

功能:终端输入字符串

参数:数组首地址

返回值:数组首地址

puts:

int puts(const char *s);

功能:终端输出字符串

参数:数组首地址

返回值:输出字符个数

char b[33]={};

gets(b);

puts(b);

特别的输入输出

#include<stdio.h>int main(int argc, char const *argv[])
{char b[33] = {};int i = 0,num = 0;scanf("%[^\n]",b);while (b[i] != '\0'){// printf("%c ",b[i]);if (b[i] == 'y'){num++;}i++;}printf("%d\n",num);return 0;
}

题目:

3.输出数组中的最大值

1.

#include <stdio.h>
int main(int argc, char const *argv[])
{int a[5] = {};for (int i = 0; i < 5; i++){scanf("%d", &a[i]);}int max = a[0], min = a[0];for (int i = 1; i < 5; i++){max = max > a[i] ? max : a[i];min = min < a[i] ? min : a[i];}printf("%d\n", max);return 0;
}

7.打印斐波那契数列前10位:

1.先赋值再打印

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

 

2.一边赋值一边打印

 

d4443fe0d32641c67b31c922325bfb1c.png

优化版:

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

启发:

如果遍历同一个数组遍历2次范围是包含关系,可以内嵌if条件,if内条件为交集的反集

8.bzero(清0的运用)

#include<stdio.h>
#include<strings.h>
int main(int argc, char const *argv[])
{int a[5] = {99,88};for (int i = 0; i < 5; i++){printf("%d\n",a[i]);}putchar(10);bzero(a,sizeof(a));//bzero清0for (int i = 0; i < 5; i++){printf("%d\n",a[i]);}return 0;
}

9.memset

#include<stdio.h>
#include<string.h>
int main(int argc, char const *argv[])
{int a[5] = {22,33};memset(a,0,sizeof(a));for (int i = 0; i < 5; i++){printf("%d",a[i]);}putchar(10);memset(a,'c',sizeof(a));for (int i = 0; i < 5; i++){printf("%c",a[i]);}putchar(10);memset(a,'1',sizeof(a));for (int i = 0; i < 5; i++){printf("%c",a[i]);}putchar(10);return 0;
}

11。判断如果定义字符串错过后,以下定义方法是否正确

 例:判断以下三种赋值方式是否正确
char a[10];
1)a[10]="hello";
2)a="hello";
3)strcpy(a,"hello");

12.练习:

终端输入一个字符串,打印其中'a'出现的次数

#include<stdio.h>int main(int argc, char const *argv[])
{char b[33] = {};int i = 0,num = 0;scanf("%[^\n]",b);while (b[i] != '\0'){// printf("%c ",b[i]);if (b[i] == 'y'){num++;}i++;}printf("%d\n",num);return 0;
}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com