2数组

1-一维数组.c

#include <stdio.h>

//int a[5];                   //未初始化的全局变量是0

int main()
{
	//int k = 10;
	//int a[k] = {0};    //定义数组的时候,长度一定要确定
	//int a[5] = {1, 2, 3, 4, 5};
	//int a[5] = {1, 2};
	//int a[5];            //未初始化的局部变量是垃圾值
	//int a[] = {1, 2, 3, 4, 5};
	int a[5] = {0};

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

	printf("%p\n", &a[0]);       //数组首元素地址
	printf("%p\n", a);           //数组名,也是数组首元素地址 等价于&a[0]
	printf("%p\n", &a);          //数组的地址
	printf("&&&&&&&&&&&&&&&&\n");

	printf("%p\n", &a[0] + 1);
	printf("%p\n", a + 1);
	//a++;                       //数组名是常指针,不能修改
	printf("%p\n", &a + 1);

	return 0;
}


2-冒泡排序.c
#include <stdio.h>

int main()
{
	int a[10] = {0};

	printf("请输入10个数字:\n");
	int i, j;
	for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
	{
		scanf("%d", &a[i]);
	}

	for (i = 0; i < sizeof(a) / sizeof(a[0]) - 1; i++)
	{
		for (j = 0; j < sizeof(a) / sizeof(a[0]) - i - 1; j++)
		{
			if (a[j] < a[j + 1])
			{
				#if 0
				int t = a[j];
				a[j] = a[j + 1];
				a[j + 1] = t;
				#endif
				a[j] = a[j] + a[j + 1];
				a[j + 1] = a[j] - a[j + 1];
				a[j] = a[j] - a[j + 1];
			}
		}
	}

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

	return 0;
}

3-二维数组.c

#include <stdio.h>

int main()
{
	//int a[2][3] = {{1, 2, 3}, {4, 5, 6}};
	//int a[2][3] = {{1}, {4, 5}};
	//int a[][3] = {{1, 2, 3}, {4, 5, 6}};
	int a[2][3] = {0};

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

	printf("%p\n", &a[0][0]);
	printf("%p\n", a[0]);         //表示数组首行首元素地址 a[1]第二行首元素地址
	printf("%p\n", a);            //a表示首行地址
	printf("%p\n", &a);           //&a表示数组的地址

	printf("%p\n", &a[0][0] + 1);
	printf("%p\n", a[0] + 1);
	printf("%p\n", a + 1);
	printf("%p\n", &a + 1);

	return 0;
}

4-字符数组.c

#include <stdio.h>

int main()
{
	//char a[10] = {'h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd'};
	char a[15] = "helloworld";

	/*int i;
	for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
	{
		printf("%c", a[i]);
	}
	printf("\n");*/
	printf("%s\n", a);   //输出字符串,遇到\0结束

	return 0;
}


5-字符串逆序.c
#include <stdio.h>

int main()
{
	char str[32] = {0};

	printf("请输入一个字符串\n");
	scanf("%s", str);

	int i = 0, length = 0;
	while (str[i] != '\0')
	{
		length++;
		i++;
	}

	int x = 0, y = length - 1;
	for (i = 0; i < length / 2; i++)
	{
		char t = str[x];
		str[x] = str[y];
		str[y] = t;

		x++;
		y--;
	}

	printf("%s\n", str);
	return 0;
}






6-插入数据.c
#include <stdio.h>
#include <string.h>

int main()
{
	char str[32] = {0};
	int num, i;
	char ch;

	printf("请输入字符串、位置、插入的元素\n");
	scanf("%s%d %c", str, &num, &ch);

	int length = strlen(str);
	for (i = 0; i < length - num + 1; i++)
	{
		str[length - i] = str[length - 1 - i];	
	}
	str[num - 1] = ch;

	printf("%s\n", str);

	return 0;
}




7-字符串处理函数.c

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

int main()
{
	char str[32] = "helloworld";
	char ptr[32] = "12345";

	//strcpy(str, ptr);   //把数组ptr的数据拷贝到数组str里面 包括'\0'
	//printf("%s\n", str);

	//strncpy(str, ptr, 3);
	//printf("%s\n", str);

	//strncpy(str + 1, ptr + 3, 2);
	//printf("%s\n", str);

	//strcat(str, ptr);    //把ptr数组里面的数据连接到str后面
	//printf("%s\n", str);

	//strncat(str, ptr + 1, 3);
	//printf("%s\n", str);

	if (strcmp(str, ptr) > 0)      //字符串比较
	{
		printf("%s > %s\n", str, ptr);
	}
	else
	{
		printf("%s < %s\n", str, ptr);
	}

	return 0;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值