努力学习Day5【C语言部分】

        一些碎碎念:今天的话是,应用数组做的输出案例,是一个正序和逆序的数组输出的案例

可能大家会觉得这个没有用,其实不然,后面的单片机会应用到相关的知识,比如流水灯会依次点亮,而想要流水灯逆向依次点亮的话,便可以设置一个按键定义,按下按键之后,开始逆向输出实现逆向点亮:

上代码了

#include <stdio.h>

int main()
{
	int arr[10];
	int i;
	for(i=0 ; i<10 ; i++)
	{
		arr[i]=i;
	}
	puts(" 当前的数组是:\n");
	for(i=0 ; i<10 ; i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n");
	puts("逆序输出后是:\n");
	for(i=9;i>=0;i--)
	{
		printf("%d ",arr[i]);
	}
	return 0;
}

用c语言的话,我们可以设置一个if的判断语句,如果用户按下什么什么键位,就开始逆向输出。后面的单片机也会像这样如此,那么我们来试一试吧!

还是比较简单的,只需要在后面一个逆序输出前,加一个条件判断即可:

#include <stdio.h>

int main()
{
	int arr[10];
	int yorn;
	int i;
	for(i=0 ; i<10 ; i++)
	{
		arr[i]=i;
	}
	puts(" 当前的数组是:\n");
	for(i=0 ; i<10 ; i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n是否要逆向输入,是的话请输入1,否请输入0:\n");
	scanf("%d",&yorn);
	
	if(yorn==1)
	{
		printf("逆序输出后是:\n");
		i==9;
		while(i>0)
		{
			printf("%d ",arr[i]);
			i--;
		}
	}
	
	if(yorn==0)
	{
		printf("程序中断");
	}
	
	return 0;
}

完成!运行结果如下!

可以看到还是有点毛刺现象,开始我们输入的是0-9十个数字而逆向变成了10-1,虽然也是九个数字,但是输出的元素却变了 

让我们修改一下while改成和上面差不多的for

#include <stdio.h>

int main()
{
	int arr[10];
	int yorn;
	int i;
	for(i=0 ; i<10 ; i++)
	{
		arr[i]=i;
	}
	puts(" 当前的数组是:\n");
	for(i=0 ; i<10 ; i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n是否要逆向输入,是的话请输入1,否请输入0:\n");
	scanf("%d",&yorn);
	
	if(yorn==1)
	{
		for(i=9 ; i>=0 ; i--)
		{
		printf("%d ",arr[i]);
		}
	}
	if(yorn==0)
	{
		printf("程序中断");
	}
	
	return 0;
}

ok看看运行结果!

 这次成功了!完成!上面一个毛刺的原因,我怀疑是i==9这一条代码并没有被执行因此 i 还是正序输出时被赋值的10导致的

今天的学习任务到这啦!明天继续加油!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值