数据倒序,(将数组 a 中的数据按相反的顺序存放) c语言 通俗易懂

/*创题目叙述:建一个 invert 函数功能:将数组 a 中的数据按相反的顺序存放。
输入 n 个数(n < 100),调用 invert 函数,最后输出逆序存放的并输出。
	要求:用指针实现 invert 函数的功能,否则按零分处理。
	输入格式 两行 第一行一个数 n 第二行 n 个数
	输出格式 一行 n 个数用空格隔开 。
*/
#include<stdio.h>//标准的输入和输出流
#include<stdlib.h>//system("pause")要用
void invert(int *str, int n);//数据倒序的具体实现函数
int main(void)//主函数
{
	int a[99], n, i;//定义一个长度为99的整形数组,以及两个整形变量
	printf("请输入你有多少个数字:\n");//提示用户输入相应信息
	scanf_s("%d", &n);//将用户刚刚输入到缓冲区的数字读入
	printf("请输入你的所有数字:\n");//提示用户输入相应信息
	for (i = 0; i < n; i++)
	{//利用for循环遍历,将用户刚刚输入到缓冲区的全部数字读入
		scanf_s("%d", &a[i]);
	}
	invert(a,n);//调用函数,进行数据倒序
	printf("转换后的数字为:\n");
	for (i = 0; i < n; i++)
	{//利用for循环,将数据倒序后的数字全部输出
		printf("%d\t", a[i]);//利用\t使得每个数字和每个数字之间由一个空格符分开
	}
	system("pause");//将黑色窗口停留,用户按任意键后才会退出
	return 0;//程序正常运行要返回一个
}
void invert(int* str, int n)
{
	int* i, * j;//为什么要定义i和j为int类型的,因为它所指向的类型是int类型,指针的类型必须和它的指向的数据的类型相一致
	int t = 0;//t是一个用于交换的临时变量
	i = str;//i指针指向数组第一个元素,
	j = str + n - 1;//j指针指向数组中的最后一个元素
	while (i < j)//因为数组在内存中是一片连续的空间,所以可以用地址的大小判断
	{
		t = *i;//进行交换
		*i = *j;
		*j = t;
		i++;//注意i一定要++,原先是指向第一个元素,现在是指向数组中的第二个元素
	    j--;//j一定要--,原先是指向最后一个元素,现在是指向倒数第二个元素
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值